IntelliJ plaginində HttpConfigurable-ın dəyişdirilməsi
Proksi konfiqurasiyasını oxuyun, son nöqtə etimadnamələrini əldə edin və IntelliJ proksi API-ləri ilə platformaya uyğun bağlantılar açın.
HttpConfigurable əvəzedicisi bir neçə API-yə bölünüb. HTTP Proksi parametrlərini yoxlayan plagin, onların vasitəsilə sorğu göndərən plagindən fərqli əməliyyat tələb edir.
| Mövcud istifadə | Miqrasiya API-si |
|---|---|
| Seçilmiş proksi konfiqurasiyasını oxumaq | ProxySettings.getInstance().getProxyConfiguration() |
| Məlum etimadnamələri əldə etmək və ya istifadəçidən soruşmaq | ProxyAuthentication |
| Konfiqurasiya edilmiş statik son nöqtə üçün etimadnamələr almaq | getStaticProxyCredentials, ProxyUtils vasitəsilə Java-ya açılan Kotlin genişlənməsi |
| Platformanın proksi seçimi ilə URL açmaq | HttpConnectionUtils.openConnection(location) və ya openHttpConnection(location) |
2024 IntelliJ Platform mənbələrinin təmsil etdiyi miqrasiya API-si üçün bu şəbəkə tipləri com.intellij.util.net daxilində yerləşir. Məsələn, Kotlin konfiqurasiyanı yoxlaya və sorğu göstərmədən məlum statik proksi etimadnamələrini axtara bilər:
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
)
)
Köməkçi ProxyCredentialProvider tələb edir; metod istinadı autentifikasiya xidmətini həmin interfeysə uyğunlaşdırır. Etimadnamələr konfiqurasiya edilmiş proksinin hostu və portu üzrə axtarılır. null nəticə konfiqurasiyanın statik olmadığını göstərə bilər, buna görə də PAC ilə seçilmiş proksinin autentifikasiya tələb etmədiyini sübut etmir.
Əsl tapşırıq HTTP sorğusu göndərmək olduqda, host və port sahələrindən marşrutu yenidən qurmaq əvəzinə platformanın bağlantı köməkçisindən istifadə edin. O, hədəf URL üçün platformanın proksi seçicisinə müraciət edir. Statik konfiqurasiyanı asJavaProxy() ilə çevirmək onun istisna siyahısına əməl etmir və PAC seçimini tətbiq etmir.
İnteraktiv autentifikasiya tələb olunursa, ProxyAuthentication.getPromptedAuthentication(prompt, host, port) ayrı, potensial olaraq bloklayan əməliyyatdır. Kodu miqrasiya edərkən bu fərqi saxlayın və API mövcudluğunu plaginin minimum dəstəklənən Platform SDK-sı ilə yoxlayın.