有没有办法在 REST 方法中获取 http 请求( header 内容)?我正在使用 spring 框架。
我想在 REST 方法中从当前请求构建到不同服务器的新请求。这更像是代理/转发服务 - 所以我想在原始请求中保留我想要的内容。 我没有太多选择 - 否则我不会使用 REST 来做这样的事情。
spring框架提供这样的接口(interface)吗?
例如 - 如果我想在下面的代码中的greeting方法中获取请求 header (来自 spring.io 的示例代码)
@Controller
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/greeting")
public @ResponseBody Greeting greeting(
@RequestParam(value="name", required=false, defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
}
最佳答案
您只需为处理程序方法提供一个 HttpServletRequest
类型的参数,Spring 就会为您提供它。
@RequestMapping("/greeting")
public @ResponseBody Greeting greeting(
@RequestParam(value="name", required=false, defaultValue="World") String name,
HttpServletRequest request) {
HttpServletRequest
提供了多个methods检索 HTTP header 。
或者,Spring 还提供 @RequestHeader
可以像 @RequestParam
一样使用注释从 HTTP 请求中检索 header 。
关于java - 在 REST 方法中获取原始请求( springframework ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22775584/