Spring-Boot HTTP 的 Feign Map<String, String> Headers
Spring-Boot Feign Map<String, String> of HTTP Headers
我试图让 Feign 客户端在下游调用的方法签名为 (@RequestBody someObject, @RequestHeaders Map<String, String> headers)
的地方工作。但我无法找到任何可行的解决方案。尝试了 @HeaderMap 注释,但 Feign 忽略了它并告诉我方法中的 RequestBody 参数太多。 @RequestHeader 只允许设置一个声明性的 header 。我不确定 RequestInterceptor 能否正常工作,因为我需要从上一个请求传递的这些 headers。我觉得 Sleuth 已经以某种方式做到了这一点 - 所以我认为这是可能的。
所以我没有找到很好的解决方案,但我想出的解决方案是使用 Feign RequestInterceptor
将 headers 添加到存储在 ThreadLocal 中的请求中在调用 FeignClient
实现之前设置。不是最优雅的,如果我们离开每个请求类型范例 1 个线程,将无法工作,但我现在能想到的就是这些。
我试图让 Feign 客户端在下游调用的方法签名为 (@RequestBody someObject, @RequestHeaders Map<String, String> headers)
的地方工作。但我无法找到任何可行的解决方案。尝试了 @HeaderMap 注释,但 Feign 忽略了它并告诉我方法中的 RequestBody 参数太多。 @RequestHeader 只允许设置一个声明性的 header 。我不确定 RequestInterceptor 能否正常工作,因为我需要从上一个请求传递的这些 headers。我觉得 Sleuth 已经以某种方式做到了这一点 - 所以我认为这是可能的。
所以我没有找到很好的解决方案,但我想出的解决方案是使用 Feign RequestInterceptor
将 headers 添加到存储在 ThreadLocal 中的请求中在调用 FeignClient
实现之前设置。不是最优雅的,如果我们离开每个请求类型范例 1 个线程,将无法工作,但我现在能想到的就是这些。