不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2023-06-24 23:30:04  修改时间:2024-05-04 17:02:13  分类:Java框架/系统  编辑

情景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),那就可以获得请求头了。

  1. 获得【request】的方法见:https://knife.blog.csdn.net/article/details/108372719
  2. 通过request获取【请求头】的方法见:https://knife.blog.csdn.net/article/details/126271292
request.getHeader("token");	
// 获取一个指定头字段的值,如果请求消息中没有包含指定的头字段,getHeader()方法返回null;
// 如果请求消息中包含有多个指定名称的头字段,getHeader()方法返回其中第一个头字段的值