HttpClient抓取頁面内容,使用HttpClient工具來發送Http請求
1.簡介
HttpClient 是 Apache Jakarta Common 下的子項目,用來提供高效的、最新的、功能豐富的支援 HTTP 協定的用戶端程式設計工具包,并且它支援 HTTP 協定最新的版本和建議。HttpClient 已經應用在很多的項目中,比如 Apache Jakarta 上很著名的另外兩個開源項目 Cactus 和 HTMLUnit 都使用了 HttpClient。
HttpClient 相比傳統 JDK 自帶的 URLConnection,增加了易用性和靈活性,它不僅是用戶端發送 HTTP 請求變得容易,而且也友善了開發人員測試接口(基于 HTTP 協定的),即提高了開發的效率,也友善提高代碼的健壯性。是以熟練掌握 HttpClient 是很重要的必修内容,掌握 HttpClient 後,相信對于 HTTP 協定的了解會更加深入。
2.應用場景
點選并拖拽以移動

3.HttpClient工具的使用
1)添加依賴
org.apache.httpcomponents
httpclient
4.5.5
fluent-hc
httpmime
2)編寫測試代碼
@Test
public void testHttpClient() throws IOException {
//1.獲得HttpClient對象
CloseableHttpClient client = HttpClients.
createDefault
();
//2.建立請求對象,如果是post請求 HttpPost 如果是get請求 HttpGet對象
String uri = "http://www.baidu.com";
HttpGet get = new HttpGet(uri);
//3.執行get請求,獲得響應消息對象
CloseableHttpResponse response = client.execute(get);
//4.擷取響應行
StatusLine statusLine = response.getStatusLine();
//5.擷取狀态碼
int code = statusLine.getStatusCode();
if(code==200){
//響應成功
HttpEntity entity = response.getEntity();
//6.擷取響應體中的内容
// InputStream is = entity.getContent();
// byte[] b = new byte[8192];
// int len = 0;
// while((len = is.read(b))!=-1){
// System.out.println(new String(b,0,len));
// }
// is.close();
System.
out
.println(EntityUtils.
toString
(entity, "utf-8"));
}