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życieAPI migracji
Odczyt wybranej konfiguracji proxyProxySettings.getInstance().getProxyConfiguration()
Pobranie znanych poświadczeń lub zapytanie użytkownikaProxyAuthentication
Uzyskanie poświadczeń dla skonfigurowanego statycznego punktu końcowegogetStaticProxyCredentials, rozszerzenie Kotlin udostępnione Javie przez ProxyUtils
Otwarcie adresu URL z użyciem wyboru proxy platformyHttpConnectionUtils.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.

Powiązane artykuły