传统方法是,首先在Controller注入HttpServletRequest,然后再通过request.getHeaderNames()遍历一遍,再通过request.getHeader()来获取相应的值
其实有一个更方便的方法。@RequestHeader和@RequestParam相信大家都不陌生,使用的时候,一般我们都是针对某一个header或者param来获取的:
@RestController
public class SomeController {
@PostMapping("/test")
public void handle(
@RequestHeader String myHeader,
@RequestParam String myParam
) {
}
}
但这两个注解,其实还可以用来一次获取所有Header和QueryParam。如下:
@RestController
public class SomeController {
@PostMapping("/test")
public void handle(
@RequestHeader Map<String, String> allHeaders,
@RequestParam MultiValueMap<String, String> allParams
) {
}
}