Menggantikan HttpConfigurable dalam pemalam IntelliJ
Baca konfigurasi proksi, dapatkan kelayakan titik akhir dan buka sambungan sedar-platform dengan API proksi IntelliJ.
Pengganti HttpConfigurable tersebar merentas beberapa API. Pemalam yang memeriksa tetapan proksi HTTP memerlukan operasi berbeza daripada pemalam yang menghantar permintaan melaluinya.
| Penggunaan sedia ada | API migrasi |
|---|---|
| Membaca konfigurasi proksi yang dipilih | ProxySettings.getInstance().getProxyConfiguration() |
| Mendapatkan kelayakan yang diketahui atau bertanya kepada pengguna | ProxyAuthentication |
| Memperoleh kelayakan untuk titik akhir statik yang dikonfigurasikan | getStaticProxyCredentials, sambungan Kotlin yang didedahkan kepada Java melalui ProxyUtils |
| Membuka URL menggunakan pemilihan proksi platform | HttpConnectionUtils.openConnection(location) atau openHttpConnection(location) |
Untuk API migrasi yang diwakili sumber IntelliJ Platform 2024, jenis rangkaian ini terletak dalam com.intellij.util.net. Contohnya, Kotlin boleh memeriksa konfigurasi dan mencari kelayakan proksi statik 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
)
)
Pembantu memerlukan ProxyCredentialProvider; rujukan kaedah menyesuaikan perkhidmatan pengesahan dengan antara muka itu. Kelayakan dicari mengikut hos dan port proksi yang dikonfigurasikan. Hasil null mungkin bermaksud konfigurasi bukan statik, jadi ia tidak membuktikan bahawa proksi yang dipilih melalui PAC tidak memerlukan pengesahan.
Apabila tugas sebenar ialah membuat permintaan HTTP, gunakan pembantu sambungan platform dan bukannya membina semula penghalaan daripada medan hos dan port. Ia merujuk pemilih proksi platform untuk URL destinasi. Menukar konfigurasi statik dengan asJavaProxy() tidak mematuhi senarai pengecualiannya dan tidak melaksanakan pemilihan PAC.
Jika pengesahan interaktif diperlukan, ProxyAuthentication.getPromptedAuthentication(prompt, host, port) ialah operasi berasingan yang berpotensi menyekat. Kekalkan perbezaan itu semasa memigrasikan kod, dan semak ketersediaan API terhadap Platform SDK minimum yang disokong pemalam.