使用HttpClient請求另一個專案介面獲取內容
阿新 • • 發佈:2018-12-31
我們在實際開發中常常會遇到這種問題:在一個專案中需要訪問另一個專案的介面獲取需要的內容。因此我們就涉及到了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;
}