Apache ConnectionTimeout允许配置两个超时:SoTimeout和HttpClient。
人们通常是这样创建一个通用HttpClient实例的:
PoolingClientConnectionManager conman = new PoolingClientConnectionManager();
conman.setMaxTotal(200);
conman.setDefaultMaxPerRoute(100);
HttpClient httpClient = new DefaultHttpClient(conman);
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 1000);
HttpConnectionParams.setSoTimeout(httpClient.getParams(), 1000);ConnectionTimeout param很棘手,它包含两个scenarious:
org.apache.http.conn.ConnectTimeoutException: Connect to example.com timed out -。org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool -()。关于这一点我有两个问题:
( 1)这两个不同的超时在单个ConnectionTimeout参数下合并的原因是否存在?
例如,没有办法在10秒内等待池中的可用连接,但要将套接字连接超时保持在1秒以内。
2)一般情况下ConnectionTimeout和SoTimeout的推荐值是什么?
发布于 2016-10-26 19:54:36
https://stackoverflow.com/questions/40268616
复制相似问题