Spring mvc控制器REST服务需要访问头信息。 如何在springmvc做到这一点?
我是一般的networking编程新手,特别是在java中,所以刚刚学到了什么是头和身体。 我正在使用MVC编写RESTful服务。 我能够在我的控制器中使用@RequestMapping
创build简单的服务。 我需要帮助,了解如何从REST服务控制器中的方法获取标题信息。 我想parsing出头,并从中获得一些属性。 你能解释我怎么得到这些信息?
当您使用@RequestHeader
注解参数时,参数将检索标题信息。 所以你可以做这样的事情:
@RequestHeader("Accept")
获取Accept
头。
所以从文档 :
@RequestMapping("/displayHeaderInfo.do") public void displayHeaderInfo(@RequestHeader("Accept-Encoding") String encoding, @RequestHeader("Keep-Alive") long keepAlive) { }
Accept-Encoding
和Keep-Alive
头部值分别在encoding
和keepAlive
参数中提供。
不用担心 我们都是一些东西的菜鸟。
您可以使用HttpHeaders
方法参数的@RequestHeader
注释来获取对所有请求标头的访问权限:
@RequestMapping(value = "/restURL") public String serveRest(@RequestBody String body, @RequestHeader HttpHeaders headers){ //Use headers to get the information about all the request headers long contentLength = headers.getContentLength(); ... StreamSource source = new StreamSource(new StringReader(body)); YourObject obj = (YourObject) jaxb2Mashaller.unmarshal(source); ... }
在我的解决scheme中,头部参数中的例子是user =“test”是:
@RequestMapping(value = "/restURL") public String serveRest(@RequestBody String body, @RequestHeader HttpHeaders headers){ System.out.println(headers.get("user")); }