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-EncodingKeep-Alive头部值分别在encodingkeepAlive参数中提供。

不用担心 我们都是一些东西的菜鸟。

您可以使用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")); } 
Interesting Posts