我正在将 apache httpclient 4.x 的使用迁移到 httpclient 5.x 版本,类和方法有很多变化。这个特定问题是关于 4.x 版本之前的 RequestConfig 类中存在的 setRelativeRedirectsAllowed() 方法。当我移动 httpclient 5.x 时。我找不到合适的替代品。
final RequestConfig requestConfig = RequestConfig
.custom()
.setCookieSpec(CookieSpecs.STANDARD)
.setConnectionRequestTimeout(...)
.setConnectTimeout(...)
.setRedirectsEnabled(true)
.setRelativeRedirectsAllowed(true)
.setSocketTimeout(...)
.build();
final CloseableHttpClient client = HttpClientBuilder
.create()
.setDefaultRequestConfig(requestConfig)
.build()
final HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(client);
我提供了我们如何在代码中使用它的示例。
我尝试过查看迁移文档,没有任何提及。我还查看了 apache-httpcomponents 4.x 和 spring 5.3.x 的代码,看看我是否能找到它到底是如何使用的,但我找不到。
我的问题是, httpclient 5.x 中是否有该方法 (setRelativeRedirectsAllowed()) 的合适替代方案, 如果没有,有没有办法自定义实现?
您不需要任何替代品。它现在支持开箱即用的相对和绝对重定向。这已在 this commit 中得到解决(你一定喜欢一些代码考古学:))。
所以简而言之,没有替代品,相对重定向应该可以工作(tm)。