SpringBoot @RequestHeader注解接收请求头
https://blog.csdn.net/feyehong/article/details/123676293
前端
$(function() { fetch('项目路径' + '/requestHeaderTest/init4', { method: 'GET', // 请求头 headers: { name: "fengYeHong", age: 18, // 一个请求头包含多个值 addressList: ["address1", "address2"] } }) });
一. 获取指定的请求头
import org.springframework.web.bind.annotation.RequestHeader; @Controller @RequestMapping("/requestHeaderTest") public class RequestHeaderTest { @GetMapping("/init1") public void init1(@RequestHeader(value = "name", required = false, defaultValue = "ready") String name, @RequestHeader(value = "age") int age, // 默认为true,如果在前端可能不指定的话,需要手动改为非必须请求头,否则报错 @RequestHeader(value = "sex", required = false) String sex, // 一个请求头中有多个值,使用List来接收 @RequestHeader(value = "addressList") List<String> addressList) { System.out.println(name); System.out.println(age); System.out.println(sex); System.out.println(addressList); } }
二. 使用Map<String, String>接收所有请求头
import org.springframework.web.bind.annotation.RequestHeader; @Controller @RequestMapping("/requestHeaderTest") public class RequestHeaderTest { @GetMapping("/init2") public void init2(@RequestHeader Map<String, String> headerMap) { // 使用Map接收所有的请求头 System.out.println(headerMap); // js中使用header名为addressList,使用map接收后需要使用addresslist System.out.println(headerMap.get("addresslist")); // address1,address2 } }
三. 使用MultiValueMap接收所有请求头
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.util.MultiValueMap; @Controller @RequestMapping("/requestHeaderTest") public class RequestHeaderTest { @GetMapping("/init3") public void init3(@RequestHeader MultiValueMap multiValueMap) { // 使用MultiValueMap来接收所有的请求头 System.out.println(multiValueMap); } }
四. 使用HttpHeaders接收所有请求头
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.http.HttpHeaders; @Controller @RequestMapping("/requestHeaderTest") public class RequestHeaderTest { @GetMapping("/init4") public void init4(@RequestHeader HttpHeaders httpHeaders) { // 使用HttpHeaders接收所有的请求头 Map<String,List<String>> result = new LinkedHashMap<>(httpHeaders); System.out.println(result); } }