HttpURLConnection.usingProxy() przed i po połączeniu
Czytaj usingProxy jako stan obsługi, w tym zachowanie OpenJDK 25 z jawnym proxy przed nawiązaniem połączenia.
HttpURLConnection udostępnia usingProxy, ale wynik wymaga obok implementacji i stanu połączenia. To nie jest żądanie testowe.
W obsłudze HTTP OpenJDK 25 jawnie skonfigurowane proxy HTTP może sprawić, że metoda zwróci true, zanim połączenie sieciowe zostanie otwarte:
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();Kandydat HTTP z listy proxy HTTP może uzupełnić host i port dla dozwolonego publicznego żądania bez uwierzytelniania proxy. openConnection tworzy obiekt. Nie nawiązuje połączenia HTTP samym zwróceniem tego obiektu. Flaga w tym przypadku jawnego proxy nie dowodzi więc, że pośrednik jest osiągalny lub przyjmuje żądanie.
Przy automatycznym wyborze wybór trasy może nastąpić później, gdy obsługa się łączy. Wczesnego wyniku false nie należy traktować jako ostatecznej decyzji o trasie. Po połączeniu interpretuj stan razem z wyjątkiem lub odpowiedzią, zwłaszcza gdy brało udział uwierzytelnianie lub trasa zapasowa.
Metoda publiczna należy do HttpURLConnection, a powyższe zachowanie jest specyficzne dla wymienionej obsługi OpenJDK. Inny dostawca lub implementacja JDK nie musi pokazywać tych samych szczegółów przed połączeniem.
Zapisz, jak wybrano proxy i kiedy odczytano flagę. Aby ustalić adres źródłowy widziany przez cel, zachowaj dowody po stronie celu; logiczny znacznik proxy nie ma pola na ten adres wyjściowy.