请求头,也就是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]