Mantenha a URL real do recurso e passe o proxy separadamente ao URLConnection:

URI destination = URI.create("https://example.com/report");
Proxy proxy = new Proxy(Proxy.Type.HTTP,
    new InetSocketAddress("203.0.113.10", 8080));
URLConnection connection = destination.toURL().openConnection(proxy);
connection.setConnectTimeout(5000);
connection.setReadTimeout(10000);

java.net imports e substitua o endereço de proxy da documentação pelo seu serviço HTTP ou por um candidato da lista de proxies HTTP. A conexão ainda solicita https://example.com/report; o proxy é a rota dela. Esta configuração não define credenciais nem todas as bibliotecas HTTP da JVM.

Código errado que insere o proxy na URL do recurso pode receber rapidamente uma página web de proxy ou um erro em vez do relatório. Compare status, conteúdo e destino real antes de interpretar essa resposta rápida como melhor desempenho.

openConnection(Proxy) deixa o caminho do recurso no URI de destino. Mantenha esse nome de host também para a verificação do certificado HTTPS; trocá-lo pelo intermediário pode acrescentar uma incompatibilidade de nome ao erro de roteamento.

Se a aplicação constrói outro cliente HTTP, use esse cliente ou a interface de fábrica de conexões dele. Um objeto de proxy URLConnection não pode configurar um caminho que nunca chama esta API.

Artigos relacionados