HttpURLConnection.usingProxy() před připojením a po něm
Chápejte usingProxy jako stav obsluhy včetně chování OpenJDK 25 s explicitní proxy před navázáním spojení.
HttpURLConnection zpřístupňuje usingProxy, ale výsledek potřebuje vedle sebe implementaci a stav spojení. Není to testovací požadavek.
V HTTP obsluze OpenJDK 25 může explicitně nastavená HTTP proxy způsobit, že metoda vrátí true ještě před otevřením síťového spojení:
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 ze seznamu HTTP proxy může vyplnit hostitele a port pro povolený veřejný požadavek bez autentizace proxy. openConnection vytvoří objekt. Spojení HTTP nenaváže jen tím, že tento objekt vrátí. Příznak v tomto případě explicitní proxy tedy nedokazuje, že prostředník je dostupný nebo požadavek přijímá.
Při automatickém výběru může volba trasy proběhnout později, až se obsluha připojuje. Raný výsledek false by se neměl brát jako konečné rozhodnutí o trase. Po připojení vykládejte stav spolu s případnou výjimkou nebo odpovědí, zejména když šlo o autentizaci nebo záložní cestu.
Veřejná metoda patří HttpURLConnection, zatímco výše popsané chování je specifické pro uvedenou obsluhu OpenJDK. Jiný poskytovatel nebo implementace JDK nemusí vykazovat stejné podrobnosti před připojením.
Zaznamenejte, jak byla proxy vybrána a kdy byl příznak přečten. K prokázání zdrojové adresy, kterou vidí cíl, uchovejte důkazy ze strany cíle; booleovský ukazatel proxy nemá pro tuto výstupní adresu žádné pole.