Pengganti HttpConfigurable tersebar di beberapa API. Plugin yang memeriksa pengaturan proxy HTTP memerlukan operasi berbeda dari plugin yang mengirim permintaan melaluinya.

Penggunaan saat iniAPI migrasi
Membaca konfigurasi proxy yang dipilihProxySettings.getInstance().getProxyConfiguration()
Mengambil kredensial yang diketahui atau bertanya kepada penggunaProxyAuthentication
Memperoleh kredensial untuk endpoint statis yang dikonfigurasigetStaticProxyCredentials, ekstensi Kotlin yang diekspos ke Java melalui ProxyUtils
Membuka URL menggunakan pemilihan proxy platformHttpConnectionUtils.openConnection(location) atau openHttpConnection(location)

Untuk API migrasi yang diwakili sumber IntelliJ Platform 2024, tipe jaringan ini berada di com.intellij.util.net. Misalnya, Kotlin dapat memeriksa konfigurasi dan mencari kredensial proxy statis yang diketahui tanpa meminta:

import com.intellij.util.net.ProxyAuthentication
import com.intellij.util.net.ProxyCredentialProvider
import com.intellij.util.net.ProxySettings
import com.intellij.util.net.getStaticProxyCredentials

val settings = ProxySettings.getInstance()
val configuration = settings.getProxyConfiguration()
val credentials = settings.getStaticProxyCredentials(
    ProxyCredentialProvider(
        ProxyAuthentication.getInstance()::getKnownAuthentication
    )
)

Helper memerlukan ProxyCredentialProvider; referensi metode menyesuaikan layanan autentikasi dengan antarmuka itu. Kredensial dicari berdasarkan host dan port proxy yang dikonfigurasi. Hasil null dapat berarti konfigurasi tidak statis, jadi itu tidak membuktikan bahwa proxy yang dipilih melalui PAC tidak memerlukan autentikasi.

Ketika tugas sebenarnya adalah membuat permintaan HTTP, gunakan helper koneksi platform alih-alih membangun ulang perutean dari bidang host dan port. Helper itu menanyakan pemilih proxy platform untuk URL tujuan. Mengonversi konfigurasi statis dengan asJavaProxy() tidak mematuhi daftar pengecualiannya dan tidak menerapkan pemilihan PAC.

Jika autentikasi interaktif diperlukan, ProxyAuthentication.getPromptedAuthentication(prompt, host, port) adalah operasi terpisah yang berpotensi memblokir. Pertahankan perbedaan itu saat memigrasikan kode, dan periksa ketersediaan API terhadap Platform SDK minimum yang didukung plugin.

Artikel terkait