gpt4 book ai didi

JAVA-11: java.net.httpClient 如何设置重试?

转载 作者:行者123 更新时间:2023-11-30 05:46:56 25 4
gpt4 key购买 nike

目前,我正在用 JDK-11 的新 Http 库替换现有的 org.apache.http.* http 客户端库。有许多令人兴奋的新功能,但是我没有找到有关“如何在新的 HTTPClient 中设置 RetryRequestHandler”的任何内容。 以前的 Apache HttpClient 构建器的代码片段:

    ...
...
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 中没有设置重试的选项。有什么解决方法吗?

最佳答案

Spring 已将 Spring Batch 中的重试分解为一个可供您使用的单独的独立库(尽管是在 Spring 项目内部)。它将允许您向调用新 HTTP 客户端的方法添加重试策略。请参阅下面的文档:

https://github.com/spring-projects/spring-retry

这是我所知道的最接近这种情况的事情。如果您想自己动手,也可以使用方面来完成同样的事情。我认为Spring库更干净,因为你可以让库处理重试的细节。他们还拥有一组强大的 API,适用于不同的重试策略,包括指数退避等。

关于JAVA-11: java.net.httpClient 如何设置重试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54662730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com