我将Apache HttpClient
与故障安全 java库结合使用。下面是(伪)代码的样子:
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
上调用一个测试端点,我已经对它进行了模拟,以执行以下操作:
现在,当我执行上述代码时,我会看到以下行为:
get
请求,结果是404404
,重试策略启动并重试请求。400
失败了400
中失败。我们的反应没有任何身体我希望第2步中的请求能够击中我的模拟,但是,如果没有击中它,它就会失败。HttpClient
是缓存响应还是试图阻止后续重试?
发布于 2020-10-20 16:47:52
显然,在为addHeader
调用execute
之前,我是用httpClient
方法在请求中设置头的。这导致了带有重复的Content-Type
和Authorization
头的请求。
由于这些标头值肯定是无效的,因此请求导致400
错误而不访问url。
https://stackoverflow.com/questions/64444251
复制相似问题