請求第三方接口

對於請求頭Content-Type,默認application/x-www-form-urlencoded。java

一、(可用)緩存

CloseableHttpClient client = HttpClients.createDefault();
        // 實例化一個post對象
        HttpPost post = new HttpPost(「url」);
        // 使用NameValuePair將發送的參數打包
        List<NameValuePair> list = new ArrayList<NameValuePair>();
        // 打包傳參
        list.add(new BasicNameValuePair("xmlContent", requestXml));
        // 使用URLEncodedFormEntity工具類實現一個entity對象,並使用NameValuePair中的數據進行初始化
        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(list, Consts.UTF_8);
        // 將實例化的 entity對象放到post對象的請求體中
        post.setEntity(formEntity);
        // 創建一個響應對象, 接受客戶端執行post後的響應結果
        CloseableHttpResponse response = client.execute(post);
        // 從實體中提取結果數據
        String result = EntityUtils.toString(response.getEntity(),"UTF-8");app

二、(可用)工具

HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(HQCInterConstant.GATE_URL);
        HttpResponse resp = null;
                    // 使用NameValuePair將發送的參數打包
                    List<NameValuePair> list = new ArrayList<NameValuePair>();
                    // 打包
                    list.add(new BasicNameValuePair("xmlContent", requestXml));
                    // 使用URLEncodedFormEntity工具類實現一個entity對象,並使用NameValuePair中的數據進行初始化
                    UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(list, Consts.UTF_8);
                    // 將實例化的 entity對象放到post對象的請求體中
                    post.setEntity(formEntity);
                    resp = client.execute(post);
                    if (resp.getStatusLine().getStatusCode() == 200) {
                        System.out.println("ok");
                    }
                    String result= EntityUtils.toString(resp.getEntity(),"UTF-8");  post

三、(可用)url

//        URL url = new URL(HQCInterConstant.GATE_URL);
//        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//        conn.setConnectTimeout(30000); // 設置鏈接主機超時(單位:毫秒)
//        conn.setReadTimeout(30000); // 設置從主機讀取數據超時(單位:毫秒)
//        conn.setDoOutput(true); // post請求參數要放在http正文內,顧設置成true,默認是false
//        conn.setDoInput(true); // 設置是否從httpUrlConnection讀入,默認狀況下是true
//        conn.setUseCaches(false); // Post 請求不能使用緩存
//        // 設定傳送的內容類型是可序列化的java對象(若是不設此項,在傳送序列化對象時,當WEB服務默認的不是這種類型時可能拋java.io.EOFException)
//        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//        conn.setRequestMethod("POST");// 設定請求的方法爲"POST",默認是GET
//        //conn.setRequestProperty("Content-Length", requestXml.length() + "");
//        requestXml="xmlContent="+URLEncoder.encode(requestXml, "UTF-8");
//        OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
//        out.write(requestXml.toString());
//        out.flush();
//        out.close();
//        if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
//            return null;
//        }
//        // 獲取響應內容體
//        BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
//        String line = null;
//        StringBuffer strBuf = new StringBuffer();
//        while ((line = in.readLine()) != null) {
//            strBuf.append(line).append("\n");
//        }
//        in.close();code

相關文章
相關標籤/搜索