HttpURLConnection mengekspos usingProxy, tetapi hasilnya perlu disertai implementasi dan status koneksi. Ini bukan permintaan uji.

Pada handler HTTP OpenJDK 25, proxy HTTP yang dikonfigurasi secara eksplisit dapat membuat metode mengembalikan true sebelum koneksi jaringan dibuka:

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();

Kandidat HTTP dari daftar proxy HTTP dapat mengisi host dan port untuk permintaan publik yang diizinkan tanpa autentikasi proxy. openConnection membangun objek. Ia tidak membuka koneksi HTTP hanya dengan mengembalikan objek itu. Jadi tanda pada kasus proxy eksplisit ini tidak membuktikan bahwa perantara dapat dijangkau atau menerima permintaan.

Dengan pemilihan otomatis, pemilihan rute dapat terjadi belakangan saat handler terhubung. Hasil false yang awal tidak boleh dianggap sebagai keputusan rute akhir. Setelah terhubung, tafsirkan status bersama pengecualian atau respons apa pun, terutama bila autentikasi atau jalur cadangan terlibat.

Metode publik ini milik HttpURLConnection, sedangkan perilaku di atas khusus untuk handler OpenJDK yang disebut. Penyedia atau implementasi JDK lain tidak harus menampilkan detail pra-koneksi yang sama.

Catat bagaimana proxy dipilih dan kapan tanda dibaca. Untuk memastikan alamat sumber yang dilihat tujuan, simpan bukti dari sisi tujuan; penanda proxy boolean tidak memiliki bidang untuk alamat keluar itu.

Artikel terkait