Erstatte HttpConfigurable i et IntelliJ-plugin
Les proxykonfigurasjon, hent legitimasjon for endepunkter og åpne plattformbevisste tilkoblinger med IntelliJ-proxy-API-ene.
Erstatningen for HttpConfigurable er fordelt på flere API-er. Et plugin som undersøker innstillingene for HTTP-proxy, trenger en annen operasjon enn et plugin som sender en forespørsel gjennom dem.
| Eksisterende bruk | Migrerings-API |
|---|---|
| Les den valgte proxykonfigurasjonen | ProxySettings.getInstance().getProxyConfiguration() |
| Hent kjent legitimasjon eller spør brukeren | ProxyAuthentication |
| Hent legitimasjon for det konfigurerte statiske endepunktet | getStaticProxyCredentials, en Kotlin-utvidelse eksponert for Java via ProxyUtils |
| Åpne en URL med plattformens proxyvalg | HttpConnectionUtils.openConnection(location) eller openHttpConnection(location) |
For migrerings-API-et som IntelliJ Platform-kildene fra 2024 representerer, ligger disse nettverkstypene i com.intellij.util.net. Kotlin kan for eksempel undersøke konfigurasjonen og slå opp kjent legitimasjon for statisk proxy uten å spørre:
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
)
)
Hjelperen krever en ProxyCredentialProvider; metodereferansen tilpasser autentiseringstjenesten til det grensesnittet. Legitimasjon slås opp etter vert og port for den konfigurerte proxyen. Et null-resultat kan betyde at konfigurasjonen ikke er statisk, så det beviser ikke at en PAC-valgt proxy ikke trenger autentisering.
Når den faktiske oppgaven er å sende en HTTP-forespørsel, bruk plattformens tilkoblingshjelper i stedet for å gjenoppbygge rutingen fra verts- og portfeltene. Den spør plattformens proxyvelger om mål-URL-en. Å konvertere en statisk konfigurasjon med asJavaProxy() respekterer ikke unntakslisten og implementerer ikke PAC-valg.
Hvis interaktiv autentisering kreves, er ProxyAuthentication.getPromptedAuthentication(prompt, host, port) en egen, potensielt blokkerende operasjon. Behold den forskjellen når du migrerer kode, og kontroller API-tilgjengelighet mot pluginets minst støttede Platform SDK.