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 не мора да ги изложува истите детали пред поврзување.
Забележете како е избран проксито и кога е прочитано знаменцето. За да ја утврдите изворната адреса што ја гледа одредиштето, чувајте докази од страната на одредиштето; буловото означување на прокси нема поле за таа излезна адреса.