HttpURLConnection sprístupňuje usingProxy, ale výsledok potrebuje vedľa seba implementáciu a stav spojenia. Nie je to testovacia požiadavka.

V HTTP obsluhe OpenJDK 25 môže explicitne nastavená HTTP proxy spôsobiť, že metóda vráti true ešte pred otvorením sieťového spojenia:

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

Kandidát HTTP zo zoznamu HTTP proxy môže vyplniť hostiteľa a port pre povolenú verejnú požiadavku bez autentifikácie proxy. openConnection vytvorí objekt. Spojenie HTTP nenadviaže len tým, že tento objekt vráti. Príznak v tomto prípade explicitnej proxy teda nedokazuje, že sprostredkovateľ je dostupný alebo požiadavku prijíma.

Pri automatickom výbere môže voľba trasy nastať neskôr, keď sa obsluha pripája. Skorý výsledok false by sa nemal brať ako konečné rozhodnutie o trase. Po pripojení vykladajte stav spolu s prípadnou výnimkou alebo odpoveďou, najmä keď išlo o autentifikáciu alebo záložnú cestu.

Verejná metóda patrí HttpURLConnection, zatiaľ čo vyššie uvedené správanie je špecifické pre uvedenú obsluhu OpenJDK. Iný poskytovateľ alebo implementácia JDK nemusí vykazovať rovnaké podrobnosti pred pripojením.

Zaznamenajte, ako bola proxy vybratá a kedy bol príznak prečítaný. Na preukázanie zdrojovej adresy, ktorú vidí cieľ, uchovajte dôkazy zo strany cieľa; booleovský ukazovateľ proxy nemá pre túto výstupnú adresu žiadne pole.

Súvisiace články