情景1:获取单个请求头
@RequestMapping("/getSingleHeader") public void getSingleHeader(@RequestHeader("user-id") String userId){ }
情景2:获取所有请求头
方法1:Map
如果使用Map接收,若请求头具有一个以上的值,我们只得到第一个值。这等效于在MultiValueMap上使用getFirst方法。
@RequestMapping("/getAllHeaders") public void listAllHeaders(@RequestHeader Map<String, String> headers) { }
方法2:MultiValueMap
如果我们的标头可能有多个值,我们可以将它们作为MultiValueMap获得
@RequestMapping("/listHeaders") public void listHeaders(@RequestHeader MultiValueMap<String, String> headers) { }
方法3:HttpHeaders
HttpHeaders 内部是通过 MultiValueMap<String, String>实现的。
@RequestMapping("/listHeaders") public void listHeaders(@RequestHeader HttpHeaders headers) { }
情景3:通过request获取请求头
只要获取了request(HttpServletRequest),那就可以获得请求头了。
- 获得【request】的方法见:https://knife.blog.csdn.net/article/details/108372719
- 通过request获取【请求头】的方法见:https://knife.blog.csdn.net/article/details/126271292
request.getHeader("token"); // 获取一个指定头字段的值,如果请求消息中没有包含指定的头字段,getHeader()方法返回null; // 如果请求消息中包含有多个指定名称的头字段,getHeader()方法返回其中第一个头字段的值