当前位置: 首页 > news >正文

Feign远程调用,请求头丢失情况

现象

在这里插入图片描述

解决方案

在这里插入图片描述

在这里插入图片描述


import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;/*** @Description: feign拦截器功能* @Created: with IntelliJ IDEA.* @author: 夏沫止水* @createTime: 2020-07-02 21:10**/@Configuration
public class GuliFeignConfig {@Bean("requestInterceptor")public RequestInterceptor requestInterceptor() {RequestInterceptor requestInterceptor = new RequestInterceptor() {@Overridepublic void apply(RequestTemplate template) {//1、使用RequestContextHolder拿到刚进来的请求数据ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if (requestAttributes != null) {//老请求HttpServletRequest request = requestAttributes.getRequest();if (request != null) {//2、同步请求头的数据(主要是cookie)//把老请求的cookie值放到新请求上来,进行一个同步String cookie = request.getHeader("Cookie");template.header("Cookie", cookie);}}}};return requestInterceptor;}}

以上可以解决同步调用问题

如果使用异步处理远程调用

如果是异步调用,则在线程池中使用其他线程,这样就是的新建的线程和之前的老线称没丝毫关系了
在这里插入图片描述
解决方案:
在上面方案的基础上,然后再后面异步调用的时候添加上老请求信息
在这里插入图片描述

http://www.lryc.cn/news/391774.html

相关文章:

  • Windows 11 安装 安卓子系统 (WSA)
  • CD4017 – 带解码输出的十进制计数器
  • Spring Boot 文件上传和下载指南:从基础到进阶
  • Windows Server 2019部署网络负载均衡NLB服务的详细操作步骤
  • Java增加线程后kafka仍然消费很慢
  • 分布式事务实现技术及考虑点
  • JavaScript中闭包的理解
  • 传统IO和NIO文件拷贝过程
  • 算法思想总结:优先级队列
  • 《米小圈日记魔法》边看边学,轻松掌握写日记的魔法!
  • 鸿蒙应用实践:利用扣子API开发起床文案生成器
  • 二手物品交易小程序的设计
  • 基于Spring Boot的高校智慧采购系统
  • 数字流的秩
  • 【mybatis】mybatis-plus中Wrapper(条件构造器)简介_常用方法及说明
  • IT专业入门:高考假期预习指南
  • 推动高效能:东芝TB67H301FTG全桥直流电机驱动IC
  • Matplotlib 中文显示
  • 【LeetCode:841. 钥匙和房间 + DFS】
  • 1)并发事务的问题
  • Python缓存利器:cachetools库详解
  • 【Python实战因果推断】20_线性回归的不合理效果10
  • 在Ubuntu 16.04上安装和配置ownCloud的方法
  • Java | Leetcode Java题解之第213题打家劫舍II
  • 使用 ESP32 接收 MAX4466 模拟麦克风模块的数据,通过 DAC 转码成 PCM 格式,并通过 MQTT 发送给另一台设备,可以通过以下步骤实现。
  • SQL二次注入原理分析
  • 在线签约如何选择?2024年10款顶级app大比拼
  • gcc: warning: -Wunused-function;加了选项,为什么就不报警告呢?
  • 系统提示我未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘finverse‘,如何解决?
  • 【电路笔记】-B类放大器