HttpURLConnection biedt usingProxy aan, maar het resultaat heeft de implementatie en toestand van de verbinding ernaast nodig. Het is geen testverzoek.

In de HTTP-handler van OpenJDK 25 kan een expliciet geconfigureerde HTTP-proxy de methode true laten teruggeven voordat de netwerkverbinding wordt geopend:

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();

Een HTTP-kandidaat uit de HTTP-proxylijst kan host en poort invullen voor een toegestaan openbaar verzoek zonder proxy-authenticatie. openConnection bouwt het object. Het brengt de HTTP-verbinding niet tot stand door alleen dat object terug te geven. De vlag bewijst in dit geval van een expliciete proxy dus niet dat de tussenpartij bereikbaar is of het verzoek accepteert.

Bij automatische selectie kan de routekeuze later plaatsvinden, wanneer de handler verbinding maakt. Een vroeg false-resultaat moet niet als de definitieve routetoewijzing worden gezien. Na de verbinding moet de toestand samen met een uitzondering of antwoord worden geïnterpreteerd, vooral wanneer authenticatie of terugval in het spel was.

De openbare methode hoort bij HttpURLConnection, terwijl het gedrag hierboven specifiek is voor de genoemde OpenJDK-handler. Een andere provider of JDK-implementatie hoeft niet dezelfde details vóór de verbinding te tonen.

Noteer hoe de proxy is gekozen en wanneer de vlag is gelezen. Om het bronadres vast te stellen dat de bestemming ziet, bewaar bewijs van de bestemmingszijde; een booleaanse proxy-markering heeft geen veld voor dat uitgaande adres.

Gerelateerde artikelen