HttpClient 超時相關引數設定

2021-08-10 15:42:34 字數 901 閱讀 7175

這裡主要介紹httpclient 4.5版本(區別於httpclient 4.3 版本,引數又說不同)設定連線超時時間closeablehttpclient。

超時的情況有三種:

(1)從連線池中獲取可用連線超時(單位:毫秒)

httpclient中的要用到連線時嘗試從連線池中獲取,若是在等待了一定的時間後還沒有獲取到可用的連線(比如連線池中沒有空閒連線了),則會丟擲獲取連線超時異常。

(2)連線目標超時connectiontimeout(單位:毫秒)

指的是連線目標url的連線超時時間,即客戶端傳送請求到與目標url建立連線的最大時間。如果在該時間範圍內還沒有建立起連線,則就丟擲connectiontimeout異常。

如:可以通過測試乙個不存在的url,進行連線,則會丟擲異常。

(3)等待響應超時(讀取資料超時) sockettimeout (單位:毫秒)

即在於目標url建立連線後,等待返回response,在規定時間內沒有返回響應資料的話就丟擲sockettimeout。

超時連線**示例:

補充知識點(另外兩個httpclient的引數設定):

(1)連線池中最大連線數 maxconntotal

(2)單個路由最大連線數 maxconnperroute

路由(route):執行環境機器到目標機器的一條線路。單個路由最大連線數,即分配給同乙個路由(route)最大的併發連線數。舉例來說,我們使用httpclient的實現來分別請求

和 www.bing.com

的資源,那麼會產生兩個路由route。

HttpClient 超時設定

httpclient中的超時設定包含兩個部分 1.建立連線超時,是指在httpclient客戶端和伺服器端建立連線過程中允許的最大等待時間 2.讀取資料超時,是指在建立連線後,等待讀取伺服器端的響應資料時允許的最大等待時間 在httpclient 4.x中如下設定 httpconnectionpar...

HttpClient超時設定

場景 最近併發較高,看到響應時間6s的時候,心裡咯噔一下,我記得我設定的超時時間是5s啊。原來讀取超時時間沒生效,只生效了連線超時時間。connectionpooltimeoutexception 獲取連線池連線超時 connectiontimeout 這定義了通過網路與伺服器建立連線的超時時間。h...

httpClient連線超時設定

注 每個httpclinet物件設定都不一樣 這裡已3.x和4.x為例說明 1 3.x版本 建立連線 這是個3.x的超時設定方法 2 4.3版本 建立連線 4.x版本的超時設定 4.3後已過時 httpclient.getparams setparameter coreconnectionpname...