记录:392
场景:在微服务中获取http请求头信息方式,可以在代码中注入HttpServletRequest;可以使用Spring的RequestContextHolder,可以使用@RequestHeader注解。
版本:JDK 1.8,SpringBoot 2.6.3,springCloud 2021.0.1
1.使用HttpServletRequest获取请求头信息
1.1在微服务的Controller层获取请求头
本质就是使用注解@Autowired注入HttpServletRequest接口的实现对象。
@RestController
@RequestMapping("/hub/example/city")
@RefreshScope
@Slf4j
public class CityController {
// 注入HttpServletRequest
@Autowired
private HttpServletRequest request;
@PostMapping("/queryCityByCityId")
public ResultObj<CityDTO> queryCityByCityId(String cityId) {
// 从请求头取信息
log.info("cityCode = " + request.getHeader("cityCode"));
return ResultObj.data(200, new CityDTO(), "执行成功");
}
}
1.2在微服务的其它类获取请求头
在微服务Service、Dao、或者其它类中,只要有@RestController、@Controller、@Service、@Component、@Repository等注解的类中,都可以注入HttpServletRequest方式获取请求头信息。
2.使用RequestContextHolder获取请求头信息
2.1关于RequestContextHolder

本文介绍了在SpringBoot和SpringCloud环境中,通过三种方式获取HTTP请求头信息:1)使用HttpServletRequest注入;2)利用RequestContextHolder获取请求上下文;3)通过@RequestHeader注解直接绑定请求头参数。同时提到了在OpenFeign接口中的适配以及HttpHeaders中的常见HTTP头字段。
最低0.47元/天 解锁文章
1938

被折叠的 条评论
为什么被折叠?



