HttpURLConnection.usingProxy() bağlanmadan önce ve sonra
usingProxy'yi işleyici durumu olarak okuyun; OpenJDK 25'in bağlantı kurulmadan önceki açık proxy davranışı dahil.
HttpURLConnection usingProxy'yi sunar, ancak sonuç yanında bağlantının uygulamasını ve durumunu gerektirir. Bu bir test isteği değildir.
OpenJDK 25'in HTTP işleyicisinde, açıkça yapılandırılmış bir HTTP proxy'si, ağ bağlantısı açılmadan önce yöntemin true döndürmesini sağlayabilir:
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 proxy listesinden bir HTTP adayı, proxy kimlik doğrulaması olmadan izin verilen genel bir istek için ana bilgisayarı ve bağlantı noktasını doldurabilir. openConnection nesneyi oluşturur. Yalnızca bu nesneyi döndürerek HTTP bağlantısını kurmaz. Bu nedenle bu açık proxy durumundaki bayrak, aracının erişilebilir olduğunu veya isteği kabul ettiğini kanıtlamaz.
Otomatik seçimde, rota seçimi işleyici bağlanırken daha sonra gerçekleşebilir. Erken bir false sonucu nihai rota kararı olarak görülmemelidir. Bağlantıdan sonra durumu herhangi bir istisna veya yanıtla birlikte yorumlayın; özellikle kimlik doğrulama ya da yedek yol söz konusuysa.
Genel yöntem HttpURLConnection'a aittir; yukarıdaki davranış ise adı geçen OpenJDK işleyicisine özgüdür. Başka bir sağlayıcı veya JDK uygulaması aynı bağlantı öncesi ayrıntıları göstermek zorunda değildir.
Proxy'nin nasıl seçildiğini ve bayrağın ne zaman okunduğunu kaydedin. Hedefin gördüğü kaynak adresi belirlemek için hedef tarafından kanıt saklayın; boolean proxy işaretinin o çıkış adresi için alanı yoktur.