Метод proxy у Reactor Netty повертає налаштований клієнт
Збережіть HttpClient, який повертає proxy(), перш ніж передавати його в ReactorClientHttpConnector; початковий клієнт не змінюється.
Методи налаштування HttpClient у Reactor Netty повертають посилання на налаштований клієнт. Якщо відкинути цей результат, попереднє посилання залишиться з попередніми налаштуваннями.
Тут створюється конфігурація проксі, яка потім втрачається:
HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
Натомість збережіть повернуте посилання:
client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(client))
.build();
Типи — HttpClient і ProxyProvider з Reactor Netty, а також WebClient і ReactorClientHttpConnector зі Spring. Ланцюжок викликів безпосередньо від HttpClient.create() — ще один спосіб зберегти повернену конфігурацію. Для дозволених запитів до публічних API список HTTP-проксі дає кандидатів для host і port із прикладу.
Та сама перевірка діє під час налаштування тайм-аутів відповіді або обробки перенаправлень. Читайте контракт повернення методу, а не припускайте, що setter змінює початковий об'єкт.
Також простежте, яке посилання потрапляє до конектора. Повторне присвоєння локальної змінної після створення конектора не замінює клієнт, який конектор уже отримав.