Методы настройки 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 изменяет исходный объект.

Также проследите, какая ссылка попадает в коннектор. Повторное присваивание локальной переменной после создания коннектора не заменяет клиент, который коннектор уже получил.

Похожие статьи