1. 程式人生 > >使用HttpClient請求另一個專案介面獲取內容

使用HttpClient請求另一個專案介面獲取內容

我們在實際開發中常常會遇到這種問題:在一個專案中需要訪問另一個專案的介面獲取需要的內容。因此我們就涉及到了HttpClient請求的問題,主要包括兩種方式:HttpPost和HttpGet兩種。

一、HttpGet請求

public String doHttpGet() {

        // 需要訪問的介面路徑
        String url = "http://124.114.27.135:3110/checkAuto/getLevel?levelId=13";
        // 配置請求資訊(請求時間)
        RequestConfig rc = RequestConfig.custom().setSocketTimeout(5000)
                .setConnectTimeout(5000).build();
        // 獲取使用DefaultHttpClient物件

        CloseableHttpClient httpclient = HttpClients.createDefault();
        // 返回結果
        String result = null;
        try {
            if (url != null) {
                // 建立HttpGet物件,將URL通過構造方法傳入HttpGet物件
                HttpGet httpget = new HttpGet(url);
                // 將配置好請求資訊附加到http請求中
                httpget.setConfig(rc);
                // 執行DefaultHttpClient物件的execute方法傳送GET請求,通過CloseableHttpResponse介面的例項,可以獲取伺服器返回的資訊

                CloseableHttpResponse response = httpclient.execute(httpget);
                try {
                    // 得到返回物件
                    HttpEntity entity = response.getEntity();
                    if (entity != null) {
                        // 獲取返回結果
                        result = EntityUtils.toString(entity);
                    }
                } finally {
                    // 關閉到客戶端的連線

                    response.close();
                }
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                // 關閉http請求
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }