Conserve la URL real del recurso y pase el proxy por separado a 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);

Use las importaciones java.net y sustituya la dirección de proxy de la documentación por su servicio HTTP o un candidato de la lista de proxies HTTP. La conexión sigue solicitando https://example.com/report; el proxy es su ruta. Esta configuración no configura ni credenciales ni todas las bibliotecas HTTP de la JVM.

El código incorrecto que sustituye el proxy en la URL del recurso puede obtener una página web de proxy rápida o un error en lugar del informe. Compare estado, contenido y destino real antes de interpretar esa respuesta rápida como mejor rendimiento.

openConnection(Proxy) deja la ruta del recurso en el URI de destino. Mantenga ese nombre de host también para la verificación del certificado HTTPS; cambiarlo por el intermediario puede añadir una discrepancia de nombre al error de enrutamiento.

Si la aplicación construye otro cliente HTTP, use ese cliente o su interfaz de fábrica de conexiones. Un objeto proxy de URLConnection no puede configurar una ruta que nunca llama a esta API.

Artículos relacionados