Apache httpclient:为什么超时时不重试

时间:2014-12-10 09:05:18

标签: java apache-httpclient-4.x

在apache httpclient 4.3中,DefaultHttpRequestRetryHandler的代码

    if (exception instanceof InterruptedIOException) {
        // Timeout
        return false;
    }

如果超时,它将不会重试。什么原因?有时,网络不稳定,我只想重试连接。我可以使用自己的RetryHandler,但我只想确定在超时时重试是否有任何问题。

2 个答案:

答案 0 :(得分:0)

这对我有帮助。我试图禁用重试选项。下面的代码恰恰相反。

DefaultHttpClient httpClient = new DefaultHttpClient();
DefaultHttpRequestRetryHandler retryHandler = new DefaultHttpRequestRetryHandler(0, true);
httpClient.setHttpRequestRetryHandler(retryHandler);

由于

答案 1 :(得分:0)

  

如果超时,它将不会重试。是什么原因?

为什么要这样?超时通常定义两个连续操作之间的最大不活动时间。如果请求首先超时,为什么要重试请求?如果您愿意等待更长时间来完成操作,则应使用更大的超时值。