Java apache httpclient何时调用ServiceUnavailableRetryStrategy

Java apache httpclient何时调用ServiceUnavailableRetryStrategy,java,apache,httpclient,Java,Apache,Httpclient,我已经扩展了Apache HttpClient 4.5.3提供的ServiceUnavailableRetryStrategy接口 我对retryRequest方法进行了如下扩展 @Override public boolean retryRequest(HttpResponse response, int executionCount, HttpContext context) { int statusCode = response.getStatusLine().getStatusC

我已经扩展了Apache HttpClient 4.5.3提供的ServiceUnavailableRetryStrategy接口

我对retryRequest方法进行了如下扩展

@Override
public boolean retryRequest(HttpResponse response, int executionCount, HttpContext context) {
    int statusCode = response.getStatusLine().getStatusCode();
    return false;
}
我希望statusCode的值是任何故障状态代码(4xx或5xx)。然而,我似乎收到了一个200响应代码

我有什么遗漏吗? 文档中提到,这是为了处理服务不可用(503)响应,因此从未期望200响应进入此方法。
如果您对可能出现的错误提出任何建议,我们将不胜感激。

似乎
ServiceUnavailableRetryStrategy
是一个更通用的接口,框架将使用它来确定是否应该重试任何类型的错误代码。有一个名为
DefaultServiceUnavailableRetryStrategy
的默认实现,它只检查503错误代码。这意味着,当您提供自己的实现时,您还应该检查您感兴趣的特定错误代码(在本例中为503),并做出适当的响应。如果您检查
DefaultServiceUnavailableRetryStrategy
的源代码,您可以看到它显式地检查状态代码,如下所示:

return executionCount <= maxRetries &&
    response.getStatusLine().getStatusCode() == HttpStatus.SC_SERVICE_UNAVAILABLE;

return executionCount感谢您的澄清@zaerymoghaddam