HttpURLConnection expone usingProxy, pero el resultado necesita a su lado la implementación y el estado de la conexión. No es una petición de prueba.

En el manejador HTTP de OpenJDK 25, un proxy HTTP configurado explícitamente puede hacer que el método devuelva true antes de que se abra la conexión de red:

import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URI;

var proxy = new Proxy(Proxy.Type.HTTP,
    new InetSocketAddress("proxy.example", 8080));
var url = URI.create("http://example.com/").toURL();
var connection = (HttpURLConnection) url.openConnection(proxy);
boolean proxyFlag = connection.usingProxy();

Un candidato HTTP de la lista de proxies HTTP puede rellenar el host y el puerto para una petición pública permitida sin autenticación de proxy. openConnection construye el objeto. No establece la conexión HTTP solo por devolver ese objeto. Por tanto, el indicador en este caso de proxy explícito no demuestra que el intermediario sea accesible o acepte la petición.

Con selección automática, la elección de ruta puede ocurrir más tarde, mientras el manejador se conecta. Un resultado false temprano no debe tomarse como la decisión final de ruta. Tras la conexión, interprete el estado junto con cualquier excepción o respuesta, sobre todo cuando intervinieron la autenticación o un respaldo.

El método público pertenece a HttpURLConnection, mientras que el comportamiento anterior es específico del manejador de OpenJDK citado. Otro proveedor o implementación de JDK no tiene por qué exponer los mismos detalles previos a la conexión.

Registre cómo se seleccionó el proxy y cuándo se leyó el indicador. Para establecer la dirección de origen que ve el destino, conserve pruebas del lado del destino; un marcador booleano de proxy no tiene campo para esa dirección de salida.

Artículos relacionados