如何使用第三方工具访问API? 

 

 

 /*  Other URL
         * ciURL = "http://localhost:8080/api/cmdb/ci/";
         * ciTypeURL = "http://localhost:8080/api/cmdb/citype/";
         * ciRelationshipsURL  =  "http://localhost:8080/api/cmdb/cirelationships/"
         * 
         * 
         * OPERATION_NAME : [ "add", "update" , "read" , "delete" ]
         * format : ["json","xml"] If format not specified, json is the default.
         *  
         * Dependency jars : httpcore-4.0.1.jar , httpclient-4.0.1.jar : This can be available http://hc.apache.org/downloads.cgi
         * @author: nprasanna
*/


package api;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

public class PostAPIRequest 
{
    public static void main(String[] args) throws Exception {
        HttpClient client = new DefaultHttpClient();
        
        
        String postURL = "http://localhost:8080/api/cmdb/citypeattributes/";
        
        HttpPost post = new HttpPost(postURL);
        String fileName = "D:\\Downloads\\API-INPUT-XMLl\\ADD_ATTRIBUTE\\pick-list.xml";        
        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "UTF8"));
        String str;
        
        StringBuilder strContent = new StringBuilder();
        while ((str = in.readLine()) != null) {
            strContent.append(str);
        }
        
        String fileContents = strContent.toString();
        try {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);            
            nameValuePairs.add(new BasicNameValuePair("TECHNICIAN_KEY", "31F022AE-4AAC-4F53-A519-193727C8B2BB"));
            nameValuePairs.add(new BasicNameValuePair("format", "xml"));
            nameValuePairs.add(new BasicNameValuePair("OPERATION_NAME", "add"));
            nameValuePairs.add(new BasicNameValuePair("INPUT_DATA", fileContents));
            post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = client.execute(post);
            BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String line = "";
            while ((line = rd.readLine()) != null) {
                System.out.println(line);                
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}



Python

 

 

#This needs the below packages to be installed.
import requests,codecs,sys,pprint


url = 'http://localhost:8080/api/cmdb/citypeattributes/'
args = {'OPERATION_NAME':'add','TECHNICIAN_KEY':'3ED8AEC2-A7D1-42F6-9A90-8B848E70D077','format':'xml'}
fileName = sys.argv[1]
#files = {'file': open('Fetch-Workstation-bool.xml')}
files = {'file': open(fileName)}
r = requests.post(url,files=files,params=args)
print r.text
#Uncomment the below lines to write the output response in out.xml file
#outfile = codecs.open("out.xml","w","utf-8")
#outfile.write(r.text)
# outfile.close()

 



浏览器插件:

 

 

 

 


SeviceDeskPlus - 帮助台和资产管理软件
Copyright © 2006-2017 卓豪(北京)技术有限公司版权所有