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();

Verwenden Sie diesen WebClient für den Aufruf. Für öffentliche Dienste auf einer zulässigen öffentlichen Proxy-Route liefert die HTTP-Proxy-Liste Kandidaten für Host und Port; bestätigen Sie den CONNECT-Zugriff auf das tatsächliche Ziel. Die Typen HttpClient/ProxyProvider stammen von Reactor Netty, nicht vom Standard-Client von Java. Ein anderer injizierter WebClient kann einen anderen Connector behalten.

Der dokumentierte Netty-HTTP-Proxy-Pfad von Reactor Netty verwendet CONNECT unabhängig vom Schema des Ziels. Ein reines HTTP-Ziel kann daher eine Tunnel-Genehmigung zu seinem Port benötigen, selbst wenn der Proxy dort gewöhnliches weitergeleitetes HTTP akzeptiert. Lesen Sie die tatsächliche Proxy-Antwort, bevor Sie das Schema der URL ändern. Für ein kompatibles Spring-6.2-Deployment, das gewöhnliche HTTP/1.1-Weiterleitung benötigt, bietet das Jetty-12.0.35-Connector-Beispiel diese Alternative.

Für Routing über JVM-Eigenschaften wählen Sie die dokumentierte Opt-in-Konfiguration von Reactor Netty. Eine in der JVM vorhandene Eigenschaft konfiguriert nicht jeden Connector.

Halten Sie Proxy-Einrichtung/Authentifizierung, TLS des Ziels und Anwendungsantworten getrennt. Der Connector liefert die Route, nicht die Anmeldedaten des Ziels oder das Protokollergebnis.

Ähnliche Artikel