当前位置: 首页 > 知识库问答 >
问题:

如何在Spring WebClient中获取最后一个重定向URL

钱嘉致
2023-03-14

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

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

调用URL上的头请求后,如何检索最终的位置头?换句话说,我们如何将最终URL重定向到?

共有1个答案

陶修洁
2023-03-14

确实,HttpClient#遵循重定向(true)启用重定向。但是也有HttpClient#遵循重定向(BiPredicate

举个例子

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

 类似资料:
  • 问题内容: 我有相当简单的HttpClient 4代码,该代码调用HttpGet来获取HTML输出。HTML返回的脚本和图像位置均设置为本地(例如),因此我需要调用URL使其变为绝对()现在出现了问题- 在调用过程中可能会有一到两个302重定向,因此原始URL不再存在反映HTML的位置。 给定我可能(或可能没有)进行的所有重定向,如何获取返回内容的最新URL? 我看着和-找不到任何东西。 编辑:返

  • 问题内容: 在页面重定向(最好使用curl或wget)之后,我需要获取最终的URL。 例如, http://google.com 可以重定向到 http://www.google.com 。 内容很容易获得(例如),但是我只对最终URL(在前一种情况下为http://www.google.com)感兴趣。 仅使用Linux内置工具有什么方法可以做到这一点?(仅命令行) 问题答案: 的选项和sub变

  • 问题内容: 我想做的是 找出重定向之后的最后一个/最终URL是什么 。 我不希望使用cURL。 我想坚持使用纯PHP(流包装器)。 现在,我有一个URL(比如说http://domain.test),并且我使用get_headers()从该页面获取特定的标题。get_headers也将返回多个标题(请参见下面的 Edit )。有没有办法使用这些标头来构建最终URL?还是有一个PHP函数可以自动执行

  • 问题内容: 因此,我正在使用net / http包。我正在获取一个我肯定知道要重定向的URL。在到达最终网址之前,它甚至可能重定向了几次。重定向在后台自动处理。 有没有一种简单的方法来确定最终的URL是什么,而没有涉及在http.Client对象上设置CheckRedirect字段的棘手的解决方法? 我想我应该提一提我想出了一种解决方法,但这有点of脚,因为它涉及使用全局变量并在自定义http.C

  • 我有一个页面“/order/new”,它包括两个客户及其地址的下拉菜单和一个重定向选择要添加到订单中的产品的按钮,我在一个数组中获得产品,并将该数组传递给“/order/new”。但是当我重定向时,我没有获得选定的客户及其地址。我将按顺序添加的产品保存在全局数组hh中,它从ajax获得数据 我想在添加产品数组后获取客户及其地址 我的ajax代码: “/new/order”得我得ejs:

  • 问题内容: 如何获取ArrayList的最后一个值? 我不知道ArrayList的最后一个索引。 问题答案: 以下是接口的一部分(由ArrayList实现): 是元素类型。如果列表为空,则抛出。你可以在此处找到整个API文档。