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

Use este WebClient para a chamada. Para serviços públicos numa rota de proxy pública permitida, a lista de proxies HTTP fornece candidatos de host e port; confirme o acesso CONNECT ao destino real. Os tipos HttpClient/ProxyProvider são do Reactor Netty, não do cliente padrão do Java. Outro WebClient injetado pode manter outro conector.

O caminho de proxy HTTP Netty documentado do Reactor Netty usa CONNECT independentemente do esquema do destino. Um destino HTTP simples pode, portanto, precisar de permissão de túnel para a sua port mesmo quando o proxy aceita HTTP encaminhado comum ali. Leia a resposta real do proxy antes de alterar o esquema da URL. Para uma implantação compatível com Spring 6.2 que precise de encaminhamento HTTP/1.1 comum, o exemplo de conector Jetty 12.0.35 oferece essa alternativa.

Para encaminhamento por propriedades da JVM, escolha a configuração opt-in documentada do Reactor Netty. Uma propriedade presente na JVM não configura todos os conectores.

Mantenha separados a configuração/autenticação do proxy, o TLS do destino e as respostas da aplicação. O conector fornece a rota, não as credenciais do destino nem o resultado do protocolo.

Artigos relacionados