httpClient請求超時的設定以及處理

2021-06-26 10:49:05 字數 986 閱讀 3126

設定超時的起因

在我們的httpclient請求,當我們的請求位址錯誤或者請求無法在正常時間內連線並且得到反饋抑或是我們的伺服器正處在關閉維修的狀態

,這時,我們傳送httpclient請求的客戶端會因為執行緒中一直在等待我們請求的反饋資訊而造成程序阻塞。如果這時候我們不做任何處理會造成客戶端無反應(在安卓系統中會造成手機應用的崩潰),這時候,我們就需要設定請求httpclient的超時時間來解決這個麻煩。

在我們的httpclient請求類中生命乙個變數來做httpclient請求

在我們的get方法中(本文以get請求為例)對我們的請求物件進行設定

// 請求超時(6秒)

// 讀取超時(6秒)

這個時候,當我們的請求或者讀取超過6秒的時候,我們的httpclient請求會報出connecttimeoutexception這個異常

這時候,我們需要在我們的請求**中捕獲我們的異常,例:

try

else

}catch(connecttimeoutexception e)finally

當我的請求超時的時候,我的該請求類會捕獲這個異常,並且返回

"connection time out"這個字串

我們此時只需要在我們呼叫httpclient請求的地方判斷我們的返回資訊是否為"connection time out",

HttpClient 超時設定

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

HttpClient超時設定

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

HttpClient的3種超時

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!原文 從連線池中取連線的超時時間 connmanagerparams.settimeout params,1000 連線超時 請求超時 第一行設定connectionpooltimeout 這定義了從connectionmanager管理的連線池中...