SpringCloud服务之间Feign调用不会带上请求头header的解决方法
三种方式设置请求头
在Spring Cloud中,使用Feign进行服务之间的调用时,默认情况下是不会传递header的。如果需要传递header,可以通过以下几种方式实现:
@RequestHeader
1.在Feign的接口方法上使用@RequestHeader注解,指定要传递的header参数。例如:
@FeignClient(name = "other-service")
public interface OtherServiceClient {
@GetMapping("/api/some-resource")
ResponseEntity<String> getSomeResource(@RequestHeader("Authorization") String token);
}@Bean RequestInterceptor
2.在Feign的配置类中配置RequestInterceptor,用于设置header。例如:
@Configuration
public class FeignClientConfig {
public HttpServletRequest getRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
}
@Bean
public RequestInterceptor requestInterceptor() {
return template -> {
template.header("platform", getRequest().getHeader("platform"));
};
}
}实现 RequestInterceptor
3.在Feign的配置文件中配置header。例如:
feign:
client:
config:
default:
loggerLevel: full
requestInterceptors:
- com.example.MyRequestInterceptorpublic class MyRequestInterceptor implements RequestInterceptor {
public HttpServletRequest getRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
}
@Override
public void apply(RequestTemplate template) {
template.header("platform", getRequest().getHeader("platform"));
}
}以上是三种常用的方式,根据具体的需求选择适合的方式即可。
到此这篇关于SpringCloud服务之间Feign调用不会带上请求头header的文章就介绍到这了,更多相关SpringCloud Feign内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot如何取消内置Tomcat启动并改用外接Tomcat
这篇文章主要介绍了SpringBoot如何取消内置Tomcat启动并改用外接Tomcat,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-11-11
IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解决
原来win10电脑上安装的是jdk8的版本,因某些原因,现在想换成jdk7的版本,修改环境变量后,在cmd中执行 [java -version]命令,显示的是7的版本,遇到这样的问题如何解决呢?下面小编给大家分享IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解决方案,一起看看吧2023-09-09
IntelliJ IDEA 安装及初次使用图文教程(2020.3.2社区版)
这篇文章主要介绍了IntelliJ IDEA 安装及初次使用(2020.3.2社区版),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03
Mybatis在sqlite中无法读写byte[]类问题的解决办法
这篇文章主要给大家介绍了关于Mybatis在sqlite中无法读写byte[]类问题的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-10-10


最新评论