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