我试图让一个假客户机在下游调用的方法签名为 (@RequestBody someObject, @RequestHeaders Map<String, String> headers) 是的。但我找不到任何可行的解决办法尝试了@headermap注释,但feign忽略了它,并告诉我方法中有太多的requestbody参数。@RequestHeader只允许设置一个声明性的头我不确定RequestInterceptor是否能工作,因为我需要从上一个请求传递这些头我觉得侦探已经做了,所以我认为这是可能的。
(@RequestBody someObject, @RequestHeaders Map<String, String> headers)
所以我没有找到一个很好的解决办法,但是我想出的解决办法是用一个伪装 RequestInterceptor 向存储在threadlocal中的请求添加头,threadlocal设置在 FeignClient 调用实现不是最优雅的,如果我们离开了每请求类型1个线程的范例,就不会工作,但我现在能想到的是。
RequestInterceptor
FeignClient