Feign转发请求头

需求

项目中微服务调用通常用Feign来实现,但是feign调用不会带上请求头,这时我们可以手动带上请求头。

实现

1.增加请求拦截器(请求头为Authorization)

@Configuration
public class FeignHeaderConfig implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate requestTemplate) {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        requestTemplate.header(HttpHeaders.AUTHORIZATION, request.getHeader(HttpHeaders.AUTHORIZATION));
    }
}

2.feignclient加上上述配置
在这里插入图片描述

@FeignClient(value = "business-portal-modular", configuration = {FeignHeaderConfig.class})

这样发feign的请求就能带上请求头Authorization了

写在最后

非常感谢大家的认真阅读,如果有其他好用的技巧或者其他代码技巧都可以和我交流哦,如有不足,还望各位看官多批评指正=_=
技术交流秋秋群:719023986

微x关注:干饭必备外卖神券,每天领大额卷
微x关注:正好想买,自助查桃宝京d卷

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot中可以通过使用RestTemplate或Feign来实现HTTP请求的转发。 1. RestTemplate RestTemplate是Spring提供的用于访问Rest服务的客户端,它可以发送HTTP请求并处理响应。要实现HTTP请求的转发,可以通过RestTemplate发送HTTP请求,然后将响应转发给目标服务。具体步骤如下: - 创建RestTemplate对象 - 使用RestTemplate发送HTTP请求获取响应 - 将响应转发给目标服务 示例代码如下: ```java @RestController public class ForwardController { private final RestTemplate restTemplate; public ForwardController(RestTemplate restTemplate) { this.restTemplate = restTemplate; } @GetMapping("/forward") public String forward(HttpServletRequest request) { // 获取目标URL String url = request.getParameter("url"); // 发送HTTP请求获取响应 ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class); // 将响应转发给目标服务 return responseEntity.getBody(); } } ``` 2. Feign Feign是一个声明式的HTTP客户端,它是基于接口的编程模型,可以让我们只需要定义接口,就能够轻松地调用远程HTTP服务。要实现HTTP请求的转发,可以通过定义Feign接口来调用目标服务。具体步骤如下: - 引入Feign依赖 - 定义Feign接口 - 注入Feign接口并调用目标服务 示例代码如下: ```java @FeignClient(name = "target-service") public interface TargetService { @GetMapping("/target") String target(); } @RestController public class ForwardController { private final TargetService targetService; public ForwardController(TargetService targetService) { this.targetService = targetService; } @GetMapping("/forward") public String forward() { // 调用目标服务 return targetService.target(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值