HttpURLConnection.usingProxy() prije i poslije povezivanja
Tumačite usingProxy kao stanje rukovaoca, uključujući ponašanje OpenJDK 25 s eksplicitnim proxyjem prije uspostavljanja veze.
HttpURLConnection izlaže usingProxy, ali rezultat traži implementaciju i stanje veze pored sebe. To nije testni zahtjev.
U HTTP rukovaocu OpenJDK 25 eksplicitno konfigurisan HTTP proxy može natjerati metodu da vrati true prije otvaranja mrežne veze:
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();HTTP kandidat sa liste HTTP proxyja može popuniti host i port za dozvoljeni javni zahtjev bez autentifikacije proxyja. openConnection gradi objekat. On ne uspostavlja HTTP vezu samim vraćanjem tog objekta. Zato zastavica u ovom slučaju eksplicitnog proxyja ne dokazuje da je posrednik dostupan ili da prihvata zahtjev.
Uz automatski odabir, izbor rute se može dogoditi kasnije dok se rukovalac povezuje. Rani rezultat false ne treba smatrati konačnom odlukom o ruti. Nakon povezivanja tumačite stanje zajedno s bilo kojim izuzetkom ili odgovorom, posebno kada su bili uključeni autentifikacija ili rezervni put.
Javna metoda pripada HttpURLConnectionu, dok je gore opisano ponašanje specifično za navedeni OpenJDK rukovalac. Drugi provajder ili implementacija JDK-a ne moraju izlagati iste pojedinosti prije povezivanja.
Zabilježite kako je proxy odabran i kada je zastavica pročitana. Da biste utvrdili izvornu adresu koju vidi odredište, sačuvajte dokaze s odredišne strane; boolean oznaka proxyja nema polje za tu izlaznu adresu.