場景:最近併發較高,看到響應時間6s的時候,心裡咯噔一下,我記得我設定的超時時間是5s啊。
原來讀取超時時間沒生效,只生效了連線超時時間。
connectionpooltimeoutexception 獲取連線池連線超時
connectiontimeout:這定義了通過網路與伺服器建立連線的超時時間。httpclient包中通過乙個非同步執行緒去建立與伺服器的socket連線,這就是該socket連線的超時時間,此處設定為3秒。
將url改為乙個不存在的url,則會丟擲org.apache.commons.httpclient.connecttimeoutexception
sockettimeout:這定義了socket讀資料的超時時間,即從伺服器獲取響應資料需要等待的時間,此處設定為5秒。
這是個3.x的超時設定方法
4.3版本超時設定
httpget httpget=new httpget("");//http get請求
requestconfig requestconfig = requestconfig.custom().setsockettimeout(2000).setconnecttimeout(2000).build();//設定請求和傳輸超時時間
httpclient.execute(httpget);//執行請求
以後再寫httpclient這兩個超時時間一定要加上,不加就很可能悲劇的了
HttpClient 超時設定
httpclient中的超時設定包含兩個部分 1.建立連線超時,是指在httpclient客戶端和伺服器端建立連線過程中允許的最大等待時間 2.讀取資料超時,是指在建立連線後,等待讀取伺服器端的響應資料時允許的最大等待時間 在httpclient 4.x中如下設定 httpconnectionpar...
httpClient連線超時設定
注 每個httpclinet物件設定都不一樣 這裡已3.x和4.x為例說明 1 3.x版本 建立連線 這是個3.x的超時設定方法 2 4.3版本 建立連線 4.x版本的超時設定 4.3後已過時 httpclient.getparams setparameter coreconnectionpname...
Java筆記 HttpClient超時設定
httpclient4.5版本 超時情況 一 請求連線超時 requestconfig.custom setconnecttimeout 設定連線超時時間,單位毫秒。二 連線池獲取連線超時 requestconfig.custom setconnectionrequesttimeout 設定從con...