Spring Boot Web:获取请求头信息


#Spring Boot


请求头,也就是HTTP请求中的Header。

示例

基于 Spring Boot Web:通过 Hello World 入门 中的示例代码稍作更改。

项目结构:

├── build.gradle
└── src
    └── main
        ├── java
        │   └── hello
        │       ├── Application.java
        │       ├── Greeting.java
        │       └── GreetingController.java
        └── resources

在 GreetingController 类中增加:

@RequestMapping(value = "/greeting3")
public Greeting greeting3(@RequestParam(value="name", defaultValue="World") String name, @RequestHeader HttpHeaders headers) {
    System.out.println(headers.get("User-Agent")); // get 方法返回 List<String>
    return new Greeting(counter.incrementAndGet(),
            String.format("Hello, %s!", name));
}

请求头和响应头其实都是键值对形式。

为什么headers.get返回的是List<String>?因为请求头中可能出现多个Key是相同的情况。

浏览器请求http://127.0.0.1:8080/greeting3,启动的web服务会在终端中打出类似下面的内容:

[Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36]

( 本文完 )