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