选择目标主机后,选择Feign + Ribbon请求拦截

时间:2017-08-30 13:47:33

标签: netflix-feign netflix-ribbon

我目前正在做什么(这是非常简单方便的方式):

localhost:9222

但是在功能区实际解析目标主机之前会发生拦截。 问题是,我想要添加的一个标头必须根据目标主机的名称创建。

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

1 个答案:

答案 0 :(得分:1)

我找到了以下解决此问题的方法。我没有使用Feign拦截器,而是使用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()访问目标主机。

然后我创建新的Request,添加我的标题并运行super.execute(newRequest, options)作为最后一条指令。