這裡主要介紹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...