【发布时间】:2017-05-17 10:21:36
【问题描述】:
我正在使用 spring-mvc 构建 REST 服务,我现在正在寻找一种从 Spring MVC 控制器内部将 HTTP 请求代理到外部 REST 服务的方法。
我正在获取 HttpServletRequest 对象并希望对其进行代理,从而尽可能少地进行更改。对我来说最重要的是保持传入请求的所有标头和属性不变。
@RequestMapping('/gateway/**')
def proxy(HttpServletRequest httpRequest) {
...
}
我只是尝试使用 RestTemplate 向外部资源发送另一个 HTTP 请求,但我找不到复制 REQUEST ATTRIBUTES 的方法(这对我来说非常重要)。
提前致谢!
【问题讨论】:
-
我也编写了一个代理(没有 REST)。我必须创建一个新的 HTTP 请求并将其发送到“外部”服务。我用Apache HTTP Components。这并不难,但需要两三行以上的代码来复制 HTTP 请求头并创建请求。
-
您是否也尝试过复制属性?
-
我必须复制请求参数(HTTP GET 的查询字符串或 HTTP POST 的消息正文)和请求标头。
标签: java spring http spring-mvc