httpClient介紹
HttpClient 是Apache Jakarta Common 下的子項目,可以用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,並且它支持 HTTP 協議最新的版本和建議。
HTTP 協議可能是現在 Internet 上使用得最多、最重要的協議了,越來越多的 Java 應用程序需要直接通過 HTTP 協議來訪問網絡資源。雖然在 JDK 的 java net包中已經提供了訪問 HTTP 協議的基本功能,但是對於大部分應用程序來說,JDK 庫本身提供的功能還不夠豐富和靈活。HttpClient 是 Apache Jakarta Common 下的子項目,用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,並且它支持 HTTP 協議最新的版本和建議。HttpClient 已經應用在很多的項目中,比如 Apache Jakarta 上很著名的另外兩個開源項目 Cactus 和 HTMLUnit 都使用了 HttpClient。現在HttpClient最新版本爲 HttpClient 4.5 .6(2015-09-11)
導入特有jar包
<!--添加httpClient jar包 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
httpClient測試
public class TestHttpClient {
/**
* 1.實例化httpClient對象
* 2.確定請求url地址
* 3.定義請求方式類型 get post put delete
* 4.利用api發起http請求,獲取響應結果
* 5.判斷返回值是否正確 校驗狀態碼.
* 6.如果返回值狀態碼正確的(200),則動態獲取返回值信息
*/
@Test
public void test() {
HttpClient httpClient = HttpClients.createDefault();
String url = "https://www.baidu.com";
HttpGet httpGet = new HttpGet(url);
try {
//發起請求,獲取響應 200
HttpResponse httpResponse = httpClient.execute(httpGet);
int code = httpResponse.getStatusLine().getStatusCode();
String reason = httpResponse.getStatusLine().getReasonPhrase();
System.out.println("獲取返回值信息:"+code+":"+reason);
if(code==200) {
//表示用戶的請求正確 獲取響應的實體
HttpEntity httpEntity = httpResponse.getEntity();
//將實體信息.轉化爲String類型,進行展現,防止亂碼
String result = EntityUtils.toString(httpEntity,"utf-8");
System.out.println(result);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}