选择目标主机之后的假 色带请求拦截



我目前正在做的事情(这是非常简单且方便的方式):

Feign.builder()
.client(RibbonClient.create())
...
.requestInterceptor(new MyInterceptor())

但截距发生在色带实际解决目标主机之前。问题是,我要添加的一个标头必须根据目标主机的名称创建。

无论如何,在解决主机后,我可以操纵标头吗?

我发现了以下解决方案的解决方案。而不是使用假拦截器我使用功能偶体委托:

Feign.builder()
.client(RibbonClient.builder().delegate(new MyDelegate())
...

MyDelegate扩展了feign.Client.Default类,覆盖public Response execute(Request request, Request.Options options)方法。

通过这种方式,我可以通过URI.create(request.url()).getHost()访问目标主机。

然后我创建新请求,添加标头并运行super.execute(newRequest, options)作为最后的指令。

最新更新