spring-mvc - 如何使用 Feign 客户端设置请求头?

标签 spring-mvc spring-cloud microservices netflix-feign spring-cloud-netflix

我们正在使用 Spring Cloud 框架开发一套微服务,我们需要做的一件事就是设置请求头。我知道我可以传递一个参数 @RequestHeader到 Feign 方法,但值需要来自另一个 bean。我不知道 SPEL 是否可以用于 Feign 参数值。
我认为这对于大多数客户来说是一个足够常见的用例,所以会有一些例子,但到目前为止我还没有找到任何例子。当然,我可以深入研究 Spring 类(class)代码并尝试覆盖默认的 Feign 配置,但如果我必须编写大量代码来实现这一点,这有点违背了声明式客户端的目的。
有什么想法吗?

最佳答案

我在使用 RequestInterceptor 之前已经这样做了,如下所示:

@Component
public class MyRequestInterceptor implements RequestInterceptor {
  @Override
  public void apply(RequestTemplate template) {
    template.headers(getHeadersFromWherever());
  }
}

您可以在此处找到更多有用的信息:

https://github.com/Netflix/feign#user-content-setting-headers-per-target

关于spring-mvc - 如何使用 Feign 客户端设置请求头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37289634/

相关文章:

spring - 如何在独立的 Turbine 应用程序中激活/turbine.stream 端点

azure - 存储文件以从 Service Fabric 应用程序流式传输的最快方法是什么?

java - 如何根据 thymeleaf 中的变量值打印不同的文本?

Java/Spring-Boot Web 应用程序不提供公共(public)资源目录中的 Assets

java - 尝试使用 Spring Boot REST 从 POST 读取 JSON 字符串

java - 如何添加请求 URI 的上下文路径?

java - 无法启动 springboot-admin :java. lang.NoClassDefFoundError: org/springframework/cloud/netflix/zuul/ZuulServerAutoConfiguration

java - netflix.feign 和 openfeign 之间的区别

c# - 微服务架构 CQRS

tomcat - 无法开箱即用地启动 jHipster 微服务网关