解决Httpclient 4 偶尔报错ConnectionPoolTimeoutException: Timeout waiting for connection from pool

HttpParams paramsw = new BasicHttpParams();
HttpConnectionParams.setStaleCheckingEnabled(paramsw, false);
HttpConnectionParams.setConnectionTimeout(paramsw, CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(paramsw, SOCKET_TIMEOUT);
HttpConnectionParams.setSocketBufferSize(paramsw, 8192 * 5);

PoolingClientConnectionManager pcm = new PoolingClientConnectionManager();
//MaxTotal 值不应该太大
pcm.setMaxTotal(200);
//DefaultMaxPerRoute 是路由的默认最大连接(该值默认为2),限制数量实际使用DefaultMaxPerRoute并非MaxTotal。
//设置过小无法支持大并发(ConnectionPoolTimeoutException: Timeout waiting for connection from pool),路由是对maxTotal的细分。
pcm.setDefaultMaxPerRoute(pcm.getMaxTotal());//(目前只有一个路由,因此让他等于最大值)

httpClient = new DefaultHttpClient(pcm, paramsw); 



你可能感兴趣的:(多线程,异常,java)