0

可以按如下方式创建遵循重定向的客户端:

WebClient.builder()
                .clientConnector(new ReactorClientHttpConnector(
                        HttpClient.create().followRedirect(true)
                ))

在 URL 上调用HEAD请求后,如何Location检索最终标头?换句话说,我们如何才能将最终 URL 重定向到?

4

1 回答 1

2

确实HttpClient#followRedirect(true)启用了重定向。但是还有HttpClient#followRedirect(BiPredicate<HttpClientRequest,HttpClientResponse>),在这里您可以更精确地控制何时要重定向,除此之外,您始终可以访问响应和Location标头,因此您随时都可以知道重定向到哪个位置。更多信息在这里这里

例如

        WebClient.builder()
                .clientConnector(new ReactorClientHttpConnector(
                        HttpClient.create().followRedirect((req, res) -> {
                            System.out.println(res.responseHeaders().get("Location"));
                            return HttpResponseStatus.FOUND.equals(res.status());
                        })
                ))
于 2019-08-14T18:42:42.617 回答