如何在apache httpclient5中实现HttpRequestRetryHandler和ServiceUnavailableRetryStrategy

问题描述 投票:0回答:1

我正在更新项目以使用httpclient5,我想知道

HttpRequestRetryHandler
ServiceUnavailableRetryStrategy

使用的相关类是什么

我们的代码片段如下

import org.apache.http.client.HttpRequestRetryHandler;
import org.apache.http.client.ServiceUnavailableRetryStrategy;
.setRetryHandler(new HttpRequestRetryHandler() {
  @Override
  public boolean retryRequest(IOException exp, int count, HttpContext context) {
    // code block
  }
)
.setServiceUnavailableRetryStrategy(new ServiceUnavailableRetryStrategy() {
  @Override
  public boolean retryRequest(HttpResponse res, int count, HttpContext context) {
    // code block
  }
)

有人可以帮忙解释一下httpclient5中的新类是什么以及如何重写这个代码块吗?

java httpclient apache-httpclient-5.x
1个回答
0
投票

HttpRequestRetryHandler
ServiceUnavailableRetryStrategy
合并HttpRequestRetryStrategy中。

所以你的新实现将是:

.setRetryStrategy(new HttpRequestRetryStrategy() {
    @Override
    public boolean retryRequest(HttpRequest request, IOException exception, int execCount, HttpContext context) {
        // code block
    }

    @Override
    public boolean retryRequest(HttpResponse response, int execCount, HttpContext context) {
        // code block
    }

    @Override
    public TimeValue getRetryInterval(HttpResponse response, int execCount, HttpContext context) {
        // code block
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.