Bir Java proxy nesnesi bir rotayı tanımlar. Hangi tür rotaları kullanabileceğine hâlâ ağ istemcisi karar verir. Bu, kullanılabilir uç nokta SOCKS konuştuğunda ve uygulama java.net.http.HttpClient kullandığında önemlidir.

Burada incelenen JDK 25 uygulamasında, HTTP istemcisinin istek kodu seçiciden bir HTTP adayı kabul eder. Bir SOCKS adayı onu SOCKS görüşmesi yapmaya zorlamaz; uygulama proxy olmadan devam edebilir. Bu nedenle başarılı bir yanıt, özel bir seçicinin SOCKS girdisinin kullanıldığına dair yeterli kanıt değildir.

Önce taşımayı seçin

Mevcut URLConnection tabanlı bir uygulama için bağlantı açılırken protokol işleyicisine desteklenen açık bir proxy verilebilir:

Proxy route = new Proxy(Proxy.Type.SOCKS,
    new InetSocketAddress("proxy.example", 1080));
URLConnection connection = URI.create("https://service.example/")
    .toURL().openConnection(route);
connection.setConnectTimeout(5000);
connection.setReadTimeout(15000);

İzin verilen genel hedef testleri için hizmetinizden veya SOCKS proxy listesinden eşleşen bir SOCKS uç noktası kullanın. Bu farklı bir istemci API'sidir, HttpClient.Builder.proxy'nin alternatif yazımı değildir. HTTPS'in amaçlanan siteyi tanımlamaya devam etmesi için hedef URL'yi koruyun.

java.net.http'yi korumak zorunda olan bir uygulama bunun yerine, sonraki SOCKS bağlantısını yöneten onaylı bir bağdaştırıcı da dâhil olmak üzere uyumlu bir HTTP proxy uç noktası kullanabilir. Bu gerçek bir bileşen ve bir erişim sınırı daha ekler; 8080 bağlantı noktasını 1080'e değiştirmek bu dönüşümü sağlamaz.

Seçimi ve benimsemeyi görünür tutun

Hem seçicinin sonucunu hem de istemcinin gerçekte açtığı bağlantıyı kaydedin. Birincisi ilke çıktısını tanımlar; ikincisi uygulamanın bunu benimseyip benimsemediğini belirler.

Sonuçları kullanılan çalışma zamanına ve taşımaya bağlayın. Tek bir soket uygulamasının kullandığı JVM SOCKS özellikleri, her HTTP kitaplığının bunlara başvuracağına dair bir söz değildir. Rota zorunlu olduğunda, görünüşte başarılı doğrudan bir isteği kabul etmeden önce desteklenmeyen proxy türü saptanmalıdır.

İlgili makaleler