首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apache HttpClient :用400中的故障安全结果重试(错误请求)

Apache HttpClient :用400中的故障安全结果重试(错误请求)
EN

Stack Overflow用户
提问于 2020-10-20 11:31:41
回答 1查看 873关注 0票数 0

我将Apache HttpClient故障安全 java库结合使用。下面是(伪)代码的样子:

代码语言:javascript
运行
复制
RetryPolicy<CloseableHttpResponse> policy = new RetryPolicy<>()
                .handleResultIf(/* Response code is 404 */)
                .withMaxRetries(5)
                .withDelay(Duration.ofSeconds(10));

CloseableHttpResponse response = Failsafe.with(policy).get(() -> httpClient.execute(myRequest));

它正在localhost上调用一个测试端点,我已经对它进行了模拟,以执行以下操作:

  • 为前3次请求返回404
  • 为第四次请求返回200

现在,当我执行上述代码时,我会看到以下行为:

  1. HttpClient发送get请求,结果是404
  2. 由于响应是404,重试策略启动并重试请求。
  3. 重试的请求在没有实际到达代理的情况下400 失败了
  4. 随后的所有重试都在400中失败。我们的反应没有任何身体

我希望第2步中的请求能够击中我的模拟,但是,如果没有击中它,它就会失败。HttpClient是缓存响应还是试图阻止后续重试?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 16:47:52

显然,在为addHeader调用execute之前,我是用httpClient方法在请求中设置头的。这导致了带有重复的Content-TypeAuthorization头的请求。

由于这些标头值肯定是无效的,因此请求导致400错误而不访问url。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64444251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档