使用HttpServletRequest或RequestContextHolder或@RequestHeader获取http请求头信息

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

记录: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值