Mengganti HttpConfigurable di plugin IntelliJ
Baca konfigurasi proxy, dapatkan kredensial endpoint, dan buka koneksi yang sadar platform dengan API proxy IntelliJ.
Pengganti HttpConfigurable tersebar di beberapa API. Plugin yang memeriksa pengaturan proxy HTTP memerlukan operasi berbeda dari plugin yang mengirim permintaan melaluinya.
| Penggunaan saat ini | API migrasi |
|---|---|
| Membaca konfigurasi proxy yang dipilih | ProxySettings.getInstance().getProxyConfiguration() |
| Mengambil kredensial yang diketahui atau bertanya kepada pengguna | ProxyAuthentication |
| Memperoleh kredensial untuk endpoint statis yang dikonfigurasi | getStaticProxyCredentials, ekstensi Kotlin yang diekspos ke Java melalui ProxyUtils |
| Membuka URL menggunakan pemilihan proxy platform | HttpConnectionUtils.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.