HttpURLConnection.usingProxy() преди и след свързване
Тълкувайте usingProxy като състояние на манипулатора, включително поведението на OpenJDK 25 с явен прокси преди установяване на връзка.
HttpURLConnection предоставя usingProxy, но резултатът се нуждае от реализацията и състоянието на връзката до него. Това не е тестова заявка.
В HTTP манипулатора на OpenJDK 25 изрично конфигуриран HTTP прокси може да накара метода да върне true преди отваряне на мрежовата връзка:
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 кандидат от списъка с HTTP проксита може да попълни хоста и порта за разрешена публична заявка без удостоверяване на прокси. openConnection създава обекта. Той не установява HTTP връзката само чрез връщане на този обект. Затова флагът в този случай на явен прокси не доказва, че посредникът е достъпен или приема заявката.
При автоматичен избор изборът на маршрут може да се случи по-късно, докато манипулаторът се свързва. Ранен резултат false не бива да се приема за окончателно решение за маршрута. След свързване тълкувайте състоянието заедно с всяко изключение или отговор, особено когато са участвали удостоверяване или резервен вариант.
Публичният метод принадлежи на HttpURLConnection, докато поведението по-горе е специфично за посочения манипулатор на OpenJDK. Друг доставчик или реализация на JDK не е длъжен да предоставя същите подробности преди свързване.
Записвайте как е избрано проксито и кога е прочетен флагът. За да установите адреса на източника, който вижда дестинацията, пазете доказателства от страната на дестинацията; булевият маркер за прокси няма поле за този адрес на изход.