HttpClient的 - 设置一个“全球性”套接字超时,并且要求每一个单独的超时

StackOverflow https://stackoverflow.com/questions/3003235

  •  25-09-2019
  •  | 
  •  

使用HttpClient的,我设置用下面的缺省插座/连接超时:

HttpParams params = new BasicHttpParams();

HttpConnectionParams.setSoTimeout(params, 30000);
HttpConnectionParams.setConnectionTimeout(params, 30000);

mClient = new DefaultHttpClient(connectionManager, params);

我想知道如果我可以在每个请求基础覆盖这些值?

编辑:将这项工作

HttpParams params = req.getParams(); // req is an HttpRequest object
HttpConnectionParams.setSoTimeout(params, 60000);
HttpConnectionParams.setConnectionTimeout(params, 60000);

我试了一下,似乎,但很难测试/创建将发生超时的情况。

有帮助吗?

解决方案

如果您正在使用的HttpClient 4.0,你可以这样做:

mClient = new DefaultHttpClient(connectionManager, params) {
  protected HttpParams determineParams(HttpRequest req) {
    //Fill in your impl here
 }

其他提示

可以简单地设定请求对象上的那些参数。有关详细信息,请参阅: http://hc.apache.org/httpcomponents-客户-GA /教程/ HTML / connmgmt.html#d4e391

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top