resttemplate请求后获取重定向地址
时间: 2023-11-12 16:05:40 浏览: 140
RestTemplate是Spring框架提供的一个用于发送HTTP请求的工具类。在使用RestTemplate发送GET请求时,默认会自动处理重定向,并返回最终的响应结果。然而,有时我们需要获取重定向后的地址,而不是最终的响应结果。
解决这个问题的方法有两种:
方法1:使用自定义的HttpComponentsClientHttpRequestFactory来取消自动重定向。首先创建一个RestTemplate实例,然后创建一个HttpComponentsClientHttpRequestFactory实例,并设置一个自定义的HttpClient,该HttpClient使用LaxRedirectStrategy来处理重定向。最后将HttpComponentsClientHttpRequestFactory设置为RestTemplate的请求工厂。
方法2:在重定向之前,从响应的header中获取真实的地址Location,并将其存储在HttpContext中。在第二次调用时,从HttpContext中获取真实地址,并将其设置到请求的header中,这样就能在最终的返回结果中获取到重定向后的地址。
根据你提供的引用内容,你可以选择其中一种方法来解决获取重定向地址的问题。
引用[.reference_title]
- 1 Spring的RestTemplate访问重定向地址,获取30*原始返回数据,而不是继续重定向[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2
allinsert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - 2 3 Spring的RestTemplate自动重定向,如何拿到重定向后的地址?[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2
allinsert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]