当前位置:网站首页>OpenFeign设置header的3种方式
OpenFeign设置header的3种方式
2022-08-02 12:21:00 【m0_67394006】
设置OpenFeign的FeignClient的Header信息
在微服务间使用Feign进行远程调用时需要在 header 中添加信息,那么 SpringBoot和SpringCloud OpenFeign的@FeignClient如何设置 header 呢?有5种方式可以设置请求头信息:
- 在@RequestMapping注解里添加headers属性
- 在方法参数前面添加@RequestHeader注解
- 实现RequestInterceptor接口
由于Feign是完全支持Spring MVC注解的, 所以推荐使用前两种Feign设置header的方式, 即: Spring MVC中使用注解设置header.
1、在**@RequestMapping
**注解里添加headers属性
在application.yml中配置
my.name=wtl
@PostMapping(value = "/service/rest/v1/script/{scriptName}/run",headers = {"Authorization=Basic YWRtaW46QFdUTDE5OTIwMTE4MDI3MQ==","Content-Type=text/plain","AppSecret=${my.name}"})
String runScript(@PathVariable("scriptName") String scriptName);
2、在方法参数前面添加@RequestHeader
注解
设置单个header属性
@PostMapping(value = “/service/rest/v1/script/{scriptName}/run”,headers = {“Content-Type=text/plain”,“AppSecret=${my.name}”})
String runScript(@PathVariable(“scriptName”) String scriptName,@RequestHeader(“Authorization”) String authorization);public String runScript(String scriptName) {
return nexusOpenFeign.runScript(scriptName,“Basic YWRtaW46QFdUTDE5OTIwMTE4MDI3MQ==”);
}
设置多个header属性
@PostMapping(value = “/service/rest/v1/script/{scriptName}/run”)
String runScript(@PathVariable(“scriptName”) String scriptName,@RequestHeader MultiValueMap<String, String> headers);public String runScript(String scriptName) {
MultiValueMap<String, String> headers = new HttpHeaders();
headers.put(“Authorization”, Collections.singletonList(“Basic YWRtaW46QFdUTDE5OTIwMTE4MDI3MQ==”));
headers.add(“Content-Type”,“text/plain”);
return nexusOpenFeign.runScript(scriptName,headers);
}
3、实现RequestInterceptor
接口
如果FeignRequestInterceptor注入到spring容器的话就会全局生效, 就是说即使在没有指定configuration属性的FeignClient该配置也会生效。
配置@Component或@Service 或 @Configuration 就可以将该配置注入spring容器中, 即可实现全局配置, 从而该项目中的所有FeignClient的feign接口都可以使用该配置.
如果只想给指定FeignClient的feign接口使用该配置, 请勿将该类配置注入spring中。
@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate template) {
template.header(HttpHeaders.AUTHORIZATION, "tokenVal");
}
}
@FeignClient(url = "${user.api.url}", name = "user", configuration = FeignRequestInterceptor.class)
public interface UserFeignClient {
@GetMapping(value = "/simple/{id}")
public User findById(@RequestParam("id") String id);
}
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
After Effects 教程,如何在 After Effects 中对蒙版进行动画绘制?
Likou 58 - Left Rotation String
How to set up wireless PPI communication between Weiluntong touch screen and S7-200smart?
喜迎八一 《社会企业开展应聘文职人员培训规范》团体标准出版发行会暨橄榄枝大课堂上线发布会在北京举行
#夏日挑战赛#【FFH】OpenHarmony设备开发基础(三)编译依赖
Process finished with exit code 1
NVIDIA NeMo Metrics 轻量性能采集系统
Distributed current limiting, hand & redisson implementation
#Summer Challenge#[FFH] OpenHarmony Device Development Foundation (3) Compilation Dependencies
darknet训练yolov4模型
随机推荐
【Acunetix-Forgot your password】
手撸架构,网络 面试36问
Metaverse "Drummer" Unity: Crazy expansion, suspense still exists
ASP.NET Core 6框架揭秘实例演示[31]:路由&ldquo;高阶&rdquo;用法
Create your own app applet ecosystem with applet containers
喜迎八一 《社会企业开展应聘文职人员培训规范》团体标准出版发行会暨橄榄枝大课堂上线发布会在北京举行
智能图像分析-智能家用电器图像目标检测统计计数检测与识别-艾科瑞特科技(iCREDIT)
力扣977-有序数组的平方——暴力法&双指针法
【MySQL系列】- LIKE查询 以%开头一定会让索引失效吗
数据湖(二):什么是Hudi
Chapter 14 Manually create a REST service (2)
前男友买辣椒水威胁要抢女儿,女方能否申请人身安全保护令?
SQL Server 2014安装教程(保姆级图解教程)
Seneor曝光基础知识
从幻核疑似裁撤看如何保证NFT的安全
Likou 209 - String with the Minimum Length - Sliding Window Method
数据湖(三):Hudi概念术语
故障分析 | 一条 SELECT 语句跑崩了 MySQL ,怎么回事?
numpy&pands 中的unique
php字符串的截取方式