在Apache的HttpClient包中,有三個設(shè)置超時的地方:
/ 從連接池中取連接的超時時間/
ConnManagerParams.setTimeout(params, 1000);
/連接超時/
HttpConnectionParams.setConnectionTimeout(params, 2000);
/請求超時/
HttpConnectionParams.setSoTimeout(params, 4000);
第一行設(shè)置ConnectionPoolTimeout:
這定義了從ConnectionManager管理的連接池中取出連接的超時時間,此處設(shè)置為1秒。
第二行設(shè)置ConnectionTimeout:
這定義了通過網(wǎng)絡(luò)與服務(wù)器建立連接的超時時間。Httpclient包中通過一個異步線程去創(chuàng)建與服務(wù)器的socket連接,這就是該socket連接的超時時間,此處設(shè)置為2秒。
第三行設(shè)置SocketTimeout:
這定義了Socket讀數(shù)據(jù)的超時時間,即從服務(wù)器獲取響應(yīng)數(shù)據(jù)需要等待的時間,此處設(shè)置為4秒。
connectionTimeout:指的是連接一個url的連接等待時間。
soTimeout:指的是連接上一個url,獲取response的返回等待時間。
更多信息請查看IT技術(shù)專欄