有没有办法在REST方法中获取http请求(标题内容)?我使用的是Spring框架。
我想在当前请求中为REST方法中的其他服务器构建一个新请求。这更像是代理/转发服务 - 所以我想在原始请求中保留我想要的东西。 我没有太多选择 - 否则我不会使用REST来做这些事情。
spring框架是否提供这样的界面?
例如 - 如果我想在下面的代码中的greeting方法中获取请求标头(来自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));
}
}
答案 0 :(得分:2)
您可以简单地为处理程序方法提供类型为HttpServletRequest
的参数,Spring将为您提供。
@RequestMapping("/greeting")
public @ResponseBody Greeting greeting(
@RequestParam(value="name", required=false, defaultValue="World") String name,
HttpServletRequest request) {
HttpServletRequest
提供了许多methods来检索HTTP标头。
或者,Spring还提供@RequestHeader
注释,可以像@RequestParam
一样使用来从HTTP请求中检索标头。