HttpClient配置及範例程式碼

來源:互聯網
上載者:User

標籤:...   url   creat   package   擷取   demo   jdk   方法   def   

HttpComponents是Apache 旗下的項目。其中有一個HttpClient,即HTTP用戶端。

...

...

 

大多時候我們只需要HttpClient,httpCore是開發服務端的我們可以一般都不需要。

 

之後我們建立項目,匯入jar包,開始開發

 

第一個樣本:

package com.zhi.httpClient;import java.io.IOException;import org.apache.http.HttpEntity;import org.apache.http.ParseException;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;public class Demo {public static void main(String[] args) {CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、建立執行個體//CloseableHttpClient意思是:可關閉的HttpGet httpGet=new HttpGet("http://www.huimsoft.com"); //2、建立執行個體//限制類型http://www.tuicool.com/CloseableHttpResponse closeableHttpResponse=null;try {closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、執行} catch (ClientProtocolException e) { //用戶端協議異常// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) { //IO異常// TODO Auto-generated catch blocke.printStackTrace();}HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、擷取實體String str="";try {str=EntityUtils.toString(httpEntity, "utf-8"); //擷取網頁內容,並且指定編碼} catch (ParseException e) { //解析異常// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(str);//關閉closeableHttpResponsetry {closeableHttpResponse.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}//關閉closeableHttpClienttry {closeableHttpClient.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

  代碼有很多,但是很多是在處理異常,所以我們也可以使用throws在方法上拋出,以簡化代碼格式,讓其更好看。

 

package com.zhi.httpClient;import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;public class Test {public static void main(String[] args) throws Exception {CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、建立執行個體HttpGet httpGet=new HttpGet("http://www.huimsoft.com"); //2、建立執行個體CloseableHttpResponse closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、執行HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、擷取實體System.out.println(EntityUtils.toString(httpEntity, "utf-8")); //5、擷取網頁內容,並且指定編碼closeableHttpResponse.close();closeableHttpClient.close();}}

  當然我們要封裝一個方法,然後使用throws拋出,最好不要在main上直接拋出異常。

 

其實有些網站讀取時是有延時的,這個時候才用try...catch來處理比較好。

 

HTTP 協議可能是現在 Internet 上使用得最多、最重要的協議了,越來越多的 Java 應用程式需要直接通過 HTTP 協議來訪問網路資源。雖然在 JDK 的 java net包中已經提供了訪問 HTTP 協議的準系統,但是對於大部分應用程式來說,JDK 庫本身提供的功能還不夠豐富和靈活。

搞爬蟲,主要是用HttpClient類比瀏覽器請求第三方網站url,然後響應,擷取網頁資料,然後用Jsoup來提取我們需要的資訊。

HttpClient配置及範例程式碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.