HttpConfigurable pakeitimas IntelliJ paprogramėje
Skaitykite proxy konfigūraciją, gaukite galinio taško prisijungimo duomenis ir atidarykite platformai pritaikytas jungtis naudodami IntelliJ proxy API.
HttpConfigurable pakaitalas išskaidytas per kelis API. Paprogramė, kuri tikrina HTTP proxy nustatymus, atlieka kitą veiksmą nei paprogramė, kuri per juos siunčia užklausą.
| Dabartinis naudojimas | Migracijos API |
|---|---|
| Pasirinktos proxy konfigūracijos skaitymas | ProxySettings.getInstance().getProxyConfiguration() |
| Žinomų prisijungimo duomenų gavimas arba vartotojo klausimas | ProxyAuthentication |
| Prisijungimo duomenų konfigūruotam statiniam galiniam taškui gavimas | getStaticProxyCredentials, Kotlin plėtinys, prieinamas Java per ProxyUtils |
| URL atidarymas naudojant platformos proxy pasirinkimą | HttpConnectionUtils.openConnection(location) arba openHttpConnection(location) |
Migracijos API, kurį atstovauja 2024 m. IntelliJ Platform šaltiniai, atveju šie tinklo tipai yra com.intellij.util.net. Pavyzdžiui, Kotlin gali ištirti konfigūraciją ir rasti žinomus statinio proxy prisijungimo duomenis neprašydamas:
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
)
)
Pagalbininkui reikia ProxyCredentialProvider; metodo nuoroda pritaiko autentifikavimo tarnybą tai sąsajai. Prisijungimo duomenų ieškoma pagal sukonfigūruoto proxy mazgo vardą ir prievadą. null rezultatas gali reikšti, kad konfigūracija nėra statinė, todėl jis neįrodo, kad PAC pasirinktam proxy nereikia autentifikavimo.
Kai tikroji užduotis yra siųsti HTTP užklausą, naudokite platformos jungties pagalbininką, o ne atkurkite maršrutizavimą iš mazgo ir prievado laukų. Jis pasiteirauja platformos proxy parinkiklio dėl tikslinio URL. Statinės konfigūracijos konvertavimas naudojant asJavaProxy() nepaiso jos išimčių sąrašo ir neįgyvendina PAC pasirinkimo.
Jei reikia interaktyvaus autentifikavimo, ProxyAuthentication.getPromptedAuthentication(prompt, host, port) yra atskiras, galintis blokuoti veiksmas. Išsaugokite šį skirtumą migruodami kodą ir patikrinkite API prieinamumą pagal minimalų paprogramės palaikomą Platform SDK.