Spring Cloud之Feign 转发请求头(header参数)
在做接口请求时,我们经常会在header头中增加一些鉴权信息,如token 或 jwt,那么在通过fegin从A server去调用B server的接口时,如果B server的接口需要header信息,我们需要将A sever获取的header转发到B上。
解决方式
我们需要实现Feign提供的一个接口RequestInterceptor
@Configuration
public class FeignConfiguration implements RequestInterceptor{private final Logger logger = LoggerFactory.getLogger(getClass());@Overridepublic void apply(RequestTemplate template) {ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();Enumeration<String> headerNames = request.getHeaderNames();if (headerNames != null) {while (headerNames.hasMoreElements()) {String name = headerNames.nextElement();String values = request.getHeader(name);template.header(name, values);}logger.info("feign interceptor header:{}",template);}/* Enumeration<String> bodyNames = request.getParameterNames();StringBuffer body =new StringBuffer();if (bodyNames != null) {while (bodyNames.hasMoreElements()) {String name = bodyNames.nextElement();String values = request.getParameter(name);body.append(name).append("=").append(values).append("&");}}if(body.length()!=0) {body.deleteCharAt(body.length()-1);template.body(body.toString());//logger.info("feign interceptor body:{}",body.toString());}*/}}
在@FeignClient
注解里面的属性加上configuration = FeignConfiguration.class
就可以了。如
@FeignClient(name = "a-server", configuration = FeignConfiguration.class)
public interface AServer{
}
bootstrap.yml增加
hystrix:command:default:execution:timeout:enabled: falseisolation:strategy: SEMAPHORE
转载于:https://www.cnblogs.com/tulu/p/9765675.html
Spring Cloud之Feign 转发请求头(header参数)相关推荐
- 微信小程序设置请求头header 参数 token 验证
小程序开发中需要在请求头header中用到 token 验证 header:{ 'content-type': 'application/x-www-form-urlencoded', 'access ...
- spring cloud 微服务之间添加自定义的header头
spring cloud 微服务之间添加自定义的header头 spring cloud 微服务之间添加自定义的header头 创建注册中心 创建生产者 创建消费者 验证结果 spring cloud ...
- 解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题
解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题 参考文章: (1)解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题 (2)ht ...
- Spring Cloud(四):Spring Cloud Alibaba Feign Dubbo
扩展点 RequestInterceptor#apply 扩展点 feign.Client#execute spring cloud dubbo 调用 RPC RPC 全称是 Remote Proce ...
- 三分钟了解Spring Cloud Gateway路由转发之自动路由
文章目录 一.前言 二.路由配置 1. 静态路由 2. 动态路由 3. 自动路由 三.Spring Cloud Gateway 是如何实现动态路由 工作原理 源码解析 路由转发原理 路由转发源码解析 ...
- Spring Cloud【Finchley】-07Feign构造多参数GET/POST请求
文章目录 概述 调用顺序 Feign构造多参数GET请求 url参数和方法参数一一对应 map接收 Feign构造多参数POST请求 源码 概述 Spring Cloud-06服务消费者整合Feign ...
- Spring Cloud Gateway一次请求调用源码解析
简介: 最近通过深入学习Spring Cloud Gateway发现这个框架的架构设计非常简单.有效,很多组件的设计都非常值得学习,本文就Spring Cloud Gateway做一个简单的介绍,以及 ...
- Spring Cloud (Eureka,Feign,Hystrix整合)
Spring Cloud(Eureka,Feign,Hystrix整合) Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代 ...
- java http head 请求_http请求头header、请求体body、请求行介绍
HttpServletRequest对象代表客户端的请求,当客户端通过http协议请求访问 服务器的时候,http请求头的所有信息都封装在这个对象中,通过这个对象,可以获取客户端请求的所有信息.htt ...
最新文章
- 试试 IntelliJ IDEA 自带的高能神器!
- 程序员接活利器,dataTable组件带你快速开发,摆脱CRUD
- 日本计算机科学家谷歌评审,高一被清华姚班录取, 高三委拒谷歌offer, 一个重度网瘾少年到理论计算机科学家的蜕变...
- SQL Server中通用数据库角色权限的处理详解
- 《看聊天记录都学不会C语言?太菜了吧》(10)程序媛聪明绝顶了
- 手机 html 折叠效果,HTML5仿苹果手机的面板合拢折叠效果
- 安卓逆向_4 --- Java 学习
- 【LeetCode笔记】221. 最大正方形(Java、动态规划、思路题)
- c++椭圆最小二乘法原理_c++ 椭圆拟合之最小二乘法(图像处理)
- 【报告分享】未来教育的技术空间研究报告.pdf(附下载链接)
- robot framework 使用四:分层设计和截图以及注意事项
- CF1109F Sasha and Algorithm of Silence's Sounds LCT、线段树
- ubuntu下载python3.8_ubuntu16.04纯净版-安装Python3.8.1/升级pip
- MySql Server 5.5安装教程
- 推荐 5 个免费高品质的图片资源网站
- SM6125平台扩容camera id的修改方法
- 台达0.4KW伺服上电报AL013
- IE浏览器JSON未定义
- 关于点进Steam页面白屏解决办法
- IT软件培训学校现场面试过程纪要及总结
热门文章
- 蓝牙血压计芯片方案开发设计
- 计算理论——正则语言,上下文无关文法,图灵机,可判定性,可规约性
- 教培人失业后的职业去向调查
- 一款适合程序员的 Markdown 简历模版,拒绝花里胡哨
- MHA+keepalive高可用环境搭建
- Android 可滑动的悬浮View
- Unable to get VFS File object for filename 'file:///': Unknown scheme sftp in URI {1}.
- 相似性度量方法(欧式距离等各种距离)
- 单反相机哪个牌子好?入门单反相机推荐?佳能单反相机推荐
- MathType在Word的菜单栏中不显示应该怎么解决