You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中如何获取外部服务重定向的原始URL?

在Spring Boot中获取外部重定向的原始URL方法

当外部服务重定向到你的Spring Boot应用时,可通过以下两种方式获取原始重定向源URL:

1. 通过Referer请求头获取(浏览器重定向场景)

浏览器处理重定向请求时,会自动将原始重定向源URL放入Referer请求头中发送至目标地址。你可以在Controller里通过HttpServletRequest直接读取该请求头:

import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping("/test")
    public String getOriginalRedirectUrl(HttpServletRequest request) {
        String originalRedirectUrl = request.getHeader("Referer");
        return "原始重定向URL: " + originalRedirectUrl;
    }
}

注意:Referer头是浏览器主动生成的,如果是后端服务直接发起的重定向(不经过浏览器),该请求头不会存在;另外部分浏览器或代理可能会移除该头,可靠性有限。

2. 通过自定义参数传递(高可靠场景)

如果业务上需要确保100%获取到原始URL,建议让外部服务在重定向时携带自定义查询参数或请求头:

  • 示例:外部服务重定向地址为http://localhost/test?originalUrl=http://example.com/redirect
  • 在Controller中读取该参数的代码如下:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping("/test")
    public String getOriginalRedirectUrl(@RequestParam("originalUrl") String originalUrl) {
        return "原始重定向URL: " + originalUrl;
    }
}

内容的提问来源于stack exchange,提问作者cookerfresh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:14:54