HttpClient httpClient = HttpClient.create()
    .proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP)
        .host("203.0.113.10").port(8080));

WebClient client = WebClient.builder()
    .clientConnector(new ReactorClientHttpConnector(httpClient))
    .build();

Используйте этот WebClient для вызова. Для публичных сервисов на разрешённом публичном прокси-маршруте список HTTP-прокси предоставляет кандидатов host и port; подтвердите доступ CONNECT к реальному назначению. Типы HttpClient/ProxyProvider принадлежат Reactor Netty, а не стандартному клиенту Java. Другой внедрённый WebClient может сохранять другой коннектор.

Документированный путь HTTP-прокси Netty в Reactor Netty использует CONNECT независимо от схемы назначения. Поэтому обычной HTTP-цели может требоваться разрешение туннеля к её port, даже если прокси принимает там обычный пересылаемый HTTP. Прочитайте фактический ответ прокси, прежде чем менять схему URL. Для совместимого развёртывания Spring 6.2, которому нужна обычная пересылка HTTP/1.1, пример коннектора Jetty 12.0.35 даёт такую альтернативу.

Для маршрутизации через свойства JVM выберите документированную opt-in конфигурацию Reactor Netty. Свойство, присутствующее в JVM, не настраивает каждый коннектор.

Держите отдельно настройку/аутентификацию прокси, TLS назначения и ответы приложения. Коннектор задаёт маршрут, а не учётные данные назначения или результат протокола.

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