HttpURLConnection expose usingProxy, mais le résultat exige à côté l'implémentation et l'état de la connexion. Ce n'est pas une requête de test.

Dans le gestionnaire HTTP d'OpenJDK 25, un proxy HTTP configuré explicitement peut faire renvoyer true à la méthode avant l'ouverture de la connexion réseau :

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 candidat HTTP de la liste de proxies HTTP peut renseigner l'hôte et le port pour une requête publique autorisée sans authentification proxy. openConnection construit l'objet. Elle n'établit pas la connexion HTTP du seul fait de renvoyer cet objet. L'indicateur, dans ce cas de proxy explicite, ne prouve donc pas que l'intermédiaire est joignable ni qu'il accepte la requête.

Avec la sélection automatique, le choix de la route peut intervenir plus tard, au moment où le gestionnaire se connecte. Un résultat false précoce ne doit pas être pris pour la décision finale de route. Après connexion, interprétez l'état avec toute exception ou réponse, surtout si une authentification ou un repli est intervenu.

La méthode publique appartient à HttpURLConnection, tandis que le comportement ci-dessus est propre au gestionnaire OpenJDK cité. Un autre fournisseur ou une autre implémentation de JDK n'a pas à exposer les mêmes détails avant connexion.

Notez comment le proxy a été choisi et quand l'indicateur a été lu. Pour établir l'adresse source vue par la destination, conservez des preuves côté destination ; un marqueur booléen de proxy n'a aucun champ pour cette adresse de sortie.

Articles similaires