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

Använd denna WebClient för anropet. För offentliga tjänster på en tillåten offentlig proxyväg tillhandahåller HTTP-proxylistan kandidater för host och port; bekräfta CONNECT-åtkomst till den faktiska destinationen. Typerna HttpClient/ProxyProvider tillhör Reactor Netty, inte Javas standardklient. En annan injicerad WebClient kan behålla en annan connector.

Reactor Nettys dokumenterade Netty HTTP-proxyväg använder CONNECT oavsett destinationens schema. Ett vanligt HTTP-mål kan därför behöva tunneltillstånd till sin port även när proxyn accepterar vanlig vidarebefordrad HTTP där. Läs proxyns faktiska svar innan du ändrar URL:ens schema. För en kompatibel Spring 6.2-distribution som behöver vanlig HTTP/1.1-vidarebefordran ger Jetty 12.0.35-connectorexemplet det alternativet.

För JVM-egenskapsrouting, välj Reactor Nettys dokumenterade opt-in-konfiguration. En egenskap som finns i JVM:en konfigurerar inte varje connector.

Håll proxykonfiguration/autentisering, destinationens TLS och applikationssvar åtskilda. Connectorn tillhandahåller vägen, inte destinationens autentiseringsuppgifter eller protokollresultat.

Relaterade artiklar