Метод 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 изменяет исходный объект.
Также проследите, какая ссылка попадает в коннектор. Повторное присваивание локальной переменной после создания коннектора не заменяет клиент, который коннектор уже получил.