我正在使用一个单例实例来DefaultHttpClient
以PoolingClientConnectionManager
多线程方式执行相当数量(每秒多个)的 HTTP 操作。我的代码基本上是:
final HttpParams httpClientParams = new BasicHttpParams();
httpClientParams.setParameter("http.protocol.version", HttpVersion.HTTP_1_1);
HttpConnectionParams.setConnectionTimeout(httpClientParams, 700);
HttpConnectionParams.setSoTimeout(httpClientParams, 700);
DefaultHttpClient client = new DefaultHttpClient(poolingClientConnectionManager, httpClientParams);
client
然后,我将从多个线程并行访问该对象。
我的问题是,超时没有得到尊重,而且我的 HTTP 请求花费的时间比指定的 700 毫秒长得多。
- 像上面那样在客户端上设置超时是否安全?
DefaultHttpClient
对许多并行请求使用单例实例是否安全?