【发布时间】:2019-07-06 20:18:51
【问题描述】:
目前我正在用 JDK-11 的新 Http 库替换现有的 org.apache.http.* http 客户端库。有许多令人兴奋的新功能,但是我没有找到关于“如何在新的 HTTPClient 中设置 RetryRequestHandler”的任何内容。 以前的Apache HttpClient builder的代码sn-p:
...
...
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create()
.setDefaultRequestConfig(config)
.setConnectionManager(connectionManager)
if(retryCount > 0) {
httpClientBuilder.setRetryHandler(new RetryRequestHandler(retryCount, url));
}
if (proxyHost) {
HttpHost proxy = new HttpHost(proxyHost, proxyPort, "http");
httpClientBuilder.setProxy(proxy);
}
...
...
这里的RetryRequestHandler是DefaultHttpRequestRetryHandler的扩展
public class RetryRequestHandler extends DefaultHttpRequestRetryHandler{...}
在 java-11 的新 HttpClient 中没有设置重试的选项。有什么解决方法吗?
【问题讨论】:
-
我怀疑默认的 JDK 实现中是否有任何 retry 功能。
-
您的代码看起来不像 Java 11 http 客户端。相反,它似乎使用 Apache HttpClient:DefaultHttpRequestRetryHandler
-
@robert 以前 httpclient builder 的代码 sn-p
-
@ruhul 你最终实施了什么解决方案?
标签: java httpclient java-11 java-http-client