2017-08-30 97 views
2

什么我目前做的(这是非常简单和方便的方式):假死+丝带请求拦截目标主机后choosen

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

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

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

回答

0

我已经找到以下解决方案来解决这个问题。而不是使用佯拦截我用RibbonClient委托:

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)作为最后的指令。