httpclient傳送get請求並接收相應資料
阿新 • • 發佈:2019-01-24
終於開始我的實習生涯了,打算每星期發一篇自己遇到的需求或者總結,希望各位大神批評指正,也喜歡能來幾個志同道合和我一起來學習,走上java大神之路
之後引入相應架包,就是這裡調了好久。架包版本不同會發生衝突,最新的版本猜想可能和自己的jdk也會發生衝突,我的是1.7的jdk,而現在最新的httpclient是4.5.3,可能這個對應的時1.8的jdk,本來想用最新的這個版本,可惜各種報錯,最終選擇了4.31版本
需要注意的是這裡的httpcore和httpclient所選版本要選擇能依賴的 這是我選擇了幾個版本之後嘗試之後唯一可以用的 下面就是程式碼:
在主函式中跑起來
最後的結果為
今天就先分享這些,希望有小夥伴能一起學習 806029174
廢話不多說,最近由於工作原因,開始接觸netty,service已經也好,需要我做一個httpclient去傳送http請求,網上搜了一下,一大堆的例項,不過有一些跑不起來,這裡就為自己總結一下。
首先建立一個maven專案
之後引入相應架包,就是這裡調了好久。架包版本不同會發生衝突,最新的版本猜想可能和自己的jdk也會發生衝突,我的是1.7的jdk,而現在最新的httpclient是4.5.3,可能這個對應的時1.8的jdk,本來想用最新的這個版本,可惜各種報錯,最終選擇了4.31版本
<dependencies> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.1</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.3.1</version> </dependency> </dependencies>
需要注意的是這裡的httpcore和httpclient所選版本要選擇能依賴的 這是我選擇了幾個版本之後嘗試之後唯一可以用的 下面就是程式碼:
package com.slz.demo.util; 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; import java.io.IOException; /** * Created by shileizhou on 17-4-8. */ public class HttpClientUtils { /** * 傳送 get請求 */ public static void get(String url) { CloseableHttpClient httpclient = HttpClients.createDefault(); try { // 建立httpget. HttpGet httpget = new HttpGet(url); System.out.println("executing request " + httpget.getURI()); // 執行get請求. CloseableHttpResponse response = httpclient.execute(httpget); try { // 獲取響應實體 HttpEntity entity = response.getEntity(); System.out.println("--------------------------------------"); // 列印響應狀態 System.out.println(response.getStatusLine()); if (entity != null) { // 列印響應內容長度 System.out.println("Response content length: " + entity.getContentLength()); // 列印響應內容 System.out.println("Response content: " + EntityUtils.toString(entity)); } System.out.println("------------------------------------"); } finally { response.close(); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { // 關閉連線,釋放資源 try { httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } } }
在主函式中跑起來
package com.slz.demo.client;
import com.slz.demo.util.HttpClientUtils;
/**
* Created by shileizhou on 17-4-8.
*/
public class HttpClient {
public static void main(String[] args){
HttpClientUtils.get("https://www.baidu.com?word=劉德華");
}
}
最後的結果為
今天就先分享這些,希望有小夥伴能一起學習 806029174