您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹Java httpClient如何使用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
Java 開發語言中實現HTTP請求的方法主要有兩種:一種是JAVA的標準類HttpUrlConnection,比較原生的實現方法;另一種是第三方開源框架HTTPClient。
HttpClient相比傳統JDK自帶的URLConnection,增加了易用性和靈活性,它不僅是客戶端發送Http請求變得容易,而且也方便了開發人員測試接口(基于Http協議的),即提高了開發的效率,也方便提高代碼的健壯性。
一、HttpClient簡單介紹
HttpClient是Apache Jakarta Common下的子項目,用來提供高效的、最新的、功能豐富的支持HTTP協議的客戶端編程工具包,并且它支持HTTP協議最新的版本和建議。HttpClient已經應用在很多的項目中,比如Apache Jakarta上很著名的另外兩個開源項目Cactus和HTMLUnit都使用了HttpClient。
HTTPClient對HTTP的封裝性比較不錯,通過它基本上能夠滿足我們大部分的需求。HttpClient3.1 是 org.apache.commons.httpclient下操作遠程 url的工具包,雖然已不再更新,但實現工作中使用httpClient3.1的代碼還是很多。HttpClient4.5 是org.apache.http.client下操作遠程 url的工具包。
二、HttpClient特性
三、使用方法
使用HttpClient發送請求、接收響應很簡單,一般需要如下幾步即可。
四、使用示例
HttpClient 為第三方Http 客戶端類庫;在開發過程中主要是發送Http協議的Post請求和Get請求。其中Post請求使用HttpPost對象構建、Get請求使用HttpGet對象構建。
HttpGet 請求
public static void main(String[] args) throws Exception { // 格式化請求url // String cmd=String.format("http://%s:%s@%s",username,password,split[1]); // 請求地址 String url = "https://blog.csdn.net/amosjob/article/details/82775290"; // 創建默認的客戶端實例 CloseableHttpClient httpclient = HttpClients.createDefault(); // 創建get請求實例 HttpGet httpGet = new HttpGet(url); // 設置頭部信息 httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"); // httpGet.addHeader("x-api-key", "XXX"); // httpGet.addHeader("x-lang", "en-US"); // 執行GET請求 返回響應實體 HttpResponse response = httpclient.execute(httpGet); // 獲取響應碼 int statusCode = response.getStatusLine().getStatusCode(); // 獲取全部的請求頭 Header[] allHeaders = response.getAllHeaders(); System.out.println("響應狀態碼:" + statusCode); for (int i = 0; i < allHeaders.length; i++) { System.out.println("全部的請求頭:" + allHeaders[i]); } // 獲取響應消息實體 HttpEntity entity = response.getEntity(); //打印輸出網頁的內容(可刪除) if (entity != null) { // 推薦該辦法打印內容 System.out.println("響應的內容:"+EntityUtils.toString(entity)); // 也可以使用這個方法 InputStream inputStream = entity.getContent(); InputStreamReader streamReader = new InputStreamReader(inputStream); int line; line = streamReader.read() ; while (line!= -1) { System.out.print((char)line); line = streamReader.read() ; } } // 關閉連接 try { httpclient.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
HttpPost 請求
public static void main(String[] args) throws Exception { // 請求地址 String url = "https://passport.csdn.net/account/login"; // 創建默認的客戶端實例 CloseableHttpClient httpclient = HttpClients.createDefault(); // 創建POST對象 HttpPost httpPost = new HttpPost(url); // 傳參數 List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("username", "admin")); params.add(new BasicNameValuePair("password", "12345")); try { UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params); httpPost.setEntity(entity); } catch (Exception e) { e.printStackTrace(); } // 執行GET請求 返回響應實體 HttpResponse response = httpclient.execute(httpPost); // 獲取響應碼 int statusCode = response.getStatusLine().getStatusCode(); // 獲取全部的請求頭 Header[] allHeaders = response.getAllHeaders(); System.out.println("響應狀態碼:" + statusCode); for (int i = 0; i < allHeaders.length; i++) { System.out.println("全部的請求頭:" + allHeaders[i]); } // 獲取響應消息實體 HttpEntity entity = response.getEntity(); // 打印輸出網頁的內容(可刪除) if (entity != null) { System.out.println("響應的內容:"+EntityUtils.toString(entity)); } // 關閉連接 try { httpclient.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
關于Java httpClient如何使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。