Отправить запрос http через определенный сетевой интерфейс с помощью Spring WebClient - PullRequest
0 голосов
/ 08 июня 2018

Я использую Spring WebClient , и мне нужно будет отправлять свои запросы через определенный сетевой адаптер (классическая ситуация, когда у вас есть два сетевых адаптера на одном компьютере).

Я просмотрел документацию безрезультатно, и исходный код кажется немного сложным.Как я могу это сделать?

1 Ответ

0 голосов
/ 16 июня 2018

В настоящее время (июнь 2017 г.) нет хорошего решения этой проблемы.Внутри API существует, но он не подвержен влиянию внешнего мира.

Единственное жизнеспособное решение - это отражение.По сути, вам необходимо перехватить создание реактора HttpClient, и в это время:

  • собрать объект HttpClientOptions из поля "options" экземпляра HttpClient
  • собрать объект Bootstrap изполе «bootstrapTemplate» экземпляра HttpClientoptions
  • устанавливает желаемый локальный адрес с помощью метода «localAddress» экземпляра Bootstrap

Надеюсь, это может кому-то помочь, так как это заняло у меня часыотладки, чтобы понять поток.Вы можете увидеть пример здесь , где мы реализовали это поведение.Это печально, но на данный момент это единственный выход.

Пожалуйста, не отрицайте этот ответ в будущем, когда будет опубликован API.

...