springcloud中HTTPRequest请求问题

问题1.springcloud中HTTPRequest请求问题


记录一下,自己小白在学习过程遇到的问题,卡了我4个小时,终于被找到了。

问题解析:在SpringCloud中使用网关全局路由拦截器后,将A B C三个微服务都交由这个网关管理,那么其中一个服务例如A服务为登录接口,那么在网关拦截器中放行该接口,进入后,由于B服务调用C服务的一个展示接口使用的是Feign调用,那么就会导致C接口拿不到token

原因:因为在feign调用的时候,会重新发起一个request请求,而不是原来的一个请求,因此拿不到token。

解决方法:
1.使用feign拦截器,在被调用方的feign注解上面的一个属性
configuration = MyFeignConf.class
在这里插入图片描述

其中,这个Class是自己自定一个的一个类实现RequestInterceptor的接口并重写apply的方法.
在这里插入图片描述以上代码解释:通过这个RequestContextHolder获取到attribute并强转为上图的类型。
attributes.getRequest可以获取原来的请求既可以获取到feign调用之前的请求,因此获取请求后在获取token请求头即可,最后templeate.hearder重新将token赋值给feign请求中。
就可以拿到token的值了。

这是自己遇到的错误和解决方法,大佬勿喷,帮助像我一样的初学者更好的学习。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值