Zastępowanie HttpConfigurable w wtyczce IntelliJ
Odczytaj konfigurację serwera proxy, pobierz poświadczenia punktu końcowego i otwieraj połączenia zgodne z platformą za pomocą interfejsów proxy IntelliJ.
Zamiennik HttpConfigurable jest rozłożony na kilka interfejsów API. Wtyczka, która sprawdza ustawienia proxy HTTP, potrzebuje innej operacji niż wtyczka wysyłająca przez nie żądanie.
| Obecne użycie | API migracji |
|---|---|
| Odczyt wybranej konfiguracji proxy | ProxySettings.getInstance().getProxyConfiguration() |
| Pobranie znanych poświadczeń lub zapytanie użytkownika | ProxyAuthentication |
| Uzyskanie poświadczeń dla skonfigurowanego statycznego punktu końcowego | getStaticProxyCredentials, rozszerzenie Kotlin udostępnione Javie przez ProxyUtils |
| Otwarcie adresu URL z użyciem wyboru proxy platformy | HttpConnectionUtils.openConnection(location) lub openHttpConnection(location) |
W przypadku API migracji, które reprezentują źródła IntelliJ Platform z 2024 roku, te typy sieciowe znajdują się w com.intellij.util.net. Na przykład Kotlin może sprawdzić konfigurację i wyszukać znane poświadczenia statycznego proxy bez monitu:
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
)
)
Pomocnik wymaga ProxyCredentialProvider; referencja do metody dopasowuje usługę uwierzytelniania do tego interfejsu. Poświadczenia są wyszukiwane według hosta i portu skonfigurowanego proxy. Wynik null może oznaczać, że konfiguracja nie jest statyczna, więc nie dowodzi, że proxy wybrane przez PAC nie wymaga uwierzytelniania.
Gdy rzeczywistym zadaniem jest wysłanie żądania HTTP, użyj pomocnika połączeń platformy zamiast odtwarzać trasowanie z pól hosta i portu. Odpytywa on selektor proxy platformy dla docelowego adresu URL. Przekształcenie konfiguracji statycznej za pomocą asJavaProxy() nie respektuje jej listy wyjątków i nie implementuje wyboru PAC.
Jeśli wymagane jest uwierzytelnianie interaktywne, ProxyAuthentication.getPromptedAuthentication(prompt, host, port) jest osobną, potencjalnie blokującą operacją. Zachowaj to rozróżnienie podczas migracji kodu i sprawdź dostępność interfejsu API względem minimalnego obsługiwanego Platform SDK wtyczki.