在Apache的HttpClient包中,有三个设置超时的地方:
(1)/* 从 socket连接池 中取连接的超时时间*/ [socket连接池 ]
ConnManagerParams.setTimeout(params, 1000);
设置ConnectionPoolTimeout:
这定义了从ConnectionManager管理的连接池中取出连接的超时时间,此处设置为1秒。
(2)/*与服务器 建立socket连接 的 连接超时时间*/
HttpConnectionParams.setConnectionTimeout(params, 2000);
设置ConnectionTimeout:
这定义了通过网络与服务器 建立socket连接的超时时间。Httpclient包中去创建与服务器的socket连接,这就是该socket连接的超时时间,此处设置为2秒。
(3)/*Socket 读取数据 的 超时时间*/ 【回应超时时间】
HttpConnectionParams.setSoTimeout(params, 4000);
设置SocketTimeout
这定义了Socket 读数据 的超时时间,即 从服务器 获取响应数据 需要等待的时间,此处设置为4秒。
以上3种超时分别会抛出ConnectionPoolTimeoutException,
ConnectionTimeoutException
SocketTimeoutException。