【问题标题】:How to get last redirect URL in Spring WebClient如何在 Spring WebClient 中获取最后一个重定向 URL
【发布时间】:2019-12-19 10:30:27
【问题描述】:

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

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

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

【问题讨论】:

    标签: spring-webflux reactor-netty spring-webclient


    【解决方案1】:

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

    例如

            WebClient.builder()
                    .clientConnector(new ReactorClientHttpConnector(
                            HttpClient.create().followRedirect((req, res) -> {
                                System.out.println(res.responseHeaders().get("Location"));
                                return HttpResponseStatus.FOUND.equals(res.status());
                            })
                    ))
    

    【讨论】:

    • 我遇到了这个特定的方法,但不确定是在每次 HTTP 重定向之后调用谓词,还是在第一次 HTTP 调用之后调用谓词,然后将其置于“自动驾驶仪”以进行其余的重定向链。
    • 每次重定向后
    猜你喜欢
    • 1970-01-01
    • 2012-05-21
    • 2014-01-02
    • 2010-12-29
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    相关资源
    最近更新 更多