当前位置:网站首页>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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- 解决导出excel文件名中文乱码的问题
- [kali-information collection] (1.9) Metasploit + search engine tool Shodan
- 阿苹的思考
- zabbix自动化监控脚本
- Import and export data of SQL Server database
- darknet训练yolov4模型
- 智能图像分析-智能家用电器图像目标检测统计计数检测与识别-艾科瑞特科技(iCREDIT)
- 手撸架构,Redis面试41问
- Problem solving in the process of using mosquitto
- 企业级数据治理工作怎么开展?Datahub这样做
猜你喜欢

Do you really understand the business process service BPass?

Likou 209 - String with the Minimum Length - Sliding Window Method

自己如何做小程序呢?

基于深度学习的裂缝检测技术

SQL Server 2019安装错误0x80004005 服务没有及时响应启动或控制请求详细解决方法

7种最常用数据分析思维,解决95%的分析难题

WebUI自动化测试框架搭建从0到1(完整源码)更新完毕

Drools(8): WorkBench uses

分布式限流利器,手撕&redisson实现

The 7 most commonly used data analysis thinking, solve 95% of the analysis problems
随机推荐
Swiper系列之轮播图
数据湖(二):什么是Hudi
第11章 文件
商业流程服务BPass你真的了解吗?
服务器间传输文件
Create an application operation process using the kubesphere GUI
观察者(observer)模式(二) —— 实现线程安全的监听器
【MySQL】多表联合查询、连接查询、子查询「建议收藏」
How to better assess credit risk?Just watch this scorecard model live
SQL函数 TRIM
[kali-information collection] (1.9) Metasploit + search engine tool Shodan
SQL Server修改数据
Do you really understand the business process service BPass?
The ex-boyfriend bought chili water and threatened to rob his daughter. Can the woman apply for a personal safety protection order?
zabbix自动化监控脚本
【第六届强网杯CTF-Wp】
ABAP-OOAVL模板程序
力扣35-搜索插入位置——二分查找
NVIDIA NeMo Metrics 轻量性能采集系统
Basic protocol explanation