Java URLConnection: definir o proxy sem alterar a URL
Não trate o proxy como servidor web e passe a rota como uma opção separada de conexão Java.
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.