使用Spring WebClient通过特定网络接口发送http请求

时间:2018-06-07 22:57:07

标签: java spring spring-webflux

我正在使用Spring WebClient,我需要通过特定的NIC发送请求(当您在同一台计算机上有两个网络适配器时的经典情况)。

我查看文档无济于事,源代码似乎有点复杂。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

此时(2017年6月),这个问题没有很好的解决方案。在内部,API存在,但它不会暴露给外部世界。

唯一可行的解​​决方案是通过反思。基本上,您需要拦截反应堆HttpClient创建,并在那时:

  • 从HttpClient实例的“options”字段中收集HttpClientOptions对象
  • 从HttpClientoptions实例的“bootstrapTemplate”字段中收集Bootstrap对象
  • 使用Bootstrap实例的“localAddress”方法设置所需的本地地址

希望这可能对某些人有所帮助,因为我需要花费数小时的时间来调试流程。您可以看到示例here,我们在其中实现了此行为。这很难过,但这是目前唯一的方式。

将来,当API暴露时,请不要低估这个答案。