httpclient 是 apache jakarta common 下的子專案,可以用來提供高效的、最新的、功能豐富的支援 http 協議的客戶端程式設計工具包,相比傳統jdk自帶的urlconnection,增加了易用性和靈活性。它支援http協議和https協議,方法上也支援get和post。下面是乙個使用的工具例項供參考(httpclient版本為4.5,ide為ideal,編譯器level為1.8)。
//連線池
//這裡想將連線池作為全域性變數使用,但是涉及到注入的變數值,導致不能通過static塊來初始化。
@postconstruct
public void init()
sslcontext sslcontext = createcertssl(keystore,keypass);
//設定連線工廠
sslconnectionsocketfactory sslfactory = new sslconnectionsocketfactory(sslcontext);
// 設定協議http和https對應的處理socket鏈結工廠的物件
// 將最大連線數增加到200
poolconnmanager.setmaxtotal(200);
// 將每個路由基礎的連線增加到30
poolconnmanager.setdefaultmaxperroute(30);
}/**
* 傳送post請求
* @param url 請求路徑
* @param str 請求引數字串
* @return 請求響應結果字串
*/public static string senddata(string url, string str)
/*** 信任自定義證書
* @param url 請求url
* @param param 請求引數
* @return 返回請求結果字串
//建立post方式請求物件
//設定連線超時時間
//設定引數到請求物件中
//設定header資訊
//指定報文頭【content-type】、【user-agent】
* 信任所有證書,繞過驗證
* @param url 請求url
* @param param 請求引數
* @return string 返回請求結果
*/public static string senddatawithallcerts(string url, string param), null, noophostnameverifier.instance);
//建立httpclient物件
//建立post方式請求物件
//設定引數到請求物件中
//設定header資訊
//指定報文頭【content-type】、【user-agent】
/*** 執行post請求並返回影響結果字串
* @param httppost post請求
* @param client httpclient客戶端
* @return 響應字串
* 返回通過證書驗證的sslcontext
* @param keystorepath 金鑰庫路徑
* @param keystorepass 金鑰庫密碼
* @return sslcontext
*/private static sslcontext createcertssl(string keystorepath, string keystorepass)catch (keystoreexception | nosuchalgorithmexception| certificateexception | ioexception | keymanagementexception e) finally catch (ioexception e)
}return sc;
}}
HttpClient工具類封裝
httpclient是apache jakarta common下的子專案,用來提供高效的 最新的 功能豐富的支援http協議的客戶端程式設計工具包,並且它支援http協議最新的版本和建議。httpclient已經應用在很多的專案中,比如apache jakarta上很著名的另外兩個開源專案cact...
HTTPClient 工具類的使用
建立http get請求 執行請求 判斷返回狀態是否為200 description 模擬不帶引數的get請求 date 2017年2月24日下午7 09 09 param url param param return public static string doget string url ti...
HttpClient使用方法
使用httpclient傳送請求 接收響應很簡單,一般需要如下幾步即可。1.建立httpclient物件。2.建立請求方法的例項,並指定請求url。如果需要傳送get請求,建立httpget物件 如果需要傳送post請求,建立httppost物件。3.如果需要傳送請求引數,可呼叫httpget ht...