天天看點

使用HttpClient抓取頁面内容

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.應用場景

點選并拖拽以移動​

使用HttpClient抓取頁面内容

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"));

}