Erstatte HttpConfigurable i eit IntelliJ-plugin
Les proxykonfigurasjon, hent legitimasjon for endepunkt og opne plattformmedvitne tilkoplingar med IntelliJ-proxy-API-ane.
Erstatninga for HttpConfigurable er fordelt på fleire API. Eit plugin som granskar innstillingane for HTTP-proxy, treng ein annan operasjon enn eit plugin som sender ein førespurnad gjennom dei.
| Eksisterande bruk | Migrerings-API |
|---|---|
| Les den valde proxykonfigurasjonen | ProxySettings.getInstance().getProxyConfiguration() |
| Hent kjend legitimasjon eller spør brukaren | ProxyAuthentication |
| Hent legitimasjon for det konfigurerte statiske endepunktet | getStaticProxyCredentials, ei Kotlin-utviding eksponert for Java via ProxyUtils |
| Opne ein URL med proxyvalet til plattformen | HttpConnectionUtils.openConnection(location) eller openHttpConnection(location) |
For migrerings-API-et som IntelliJ Platform-kjeldene frå 2024 representerer, ligg desse nettverkstypane i com.intellij.util.net. Kotlin kan til dømes granske konfigurasjonen og slå opp kjend legitimasjon for statisk proxy utan å spørje:
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
)
)
Hjelparen krev ein ProxyCredentialProvider; metodenreferansen tilpassar autentiseringstenesta til det grensesnittet. Legitimasjon blir slått opp etter vert og port for den konfigurerte proxyen. Eit null-resultat kan tyde på at konfigurasjonen ikkje er statisk, så det bevisar ikkje at ein PAC-vald proxy ikkje treng autentisering.
Når den faktiske oppgåva er å sende ein HTTP-førespurnad, bruk tilkoplinghjelparen til plattformen i staden for å byggje opp rutingslogikken på nytt frå verts- og portfelta. Han spør proxyveljaren til plattformen om mål-URL-en. Å konvertere ein statisk konfigurasjon med asJavaProxy() respekterer ikkje unntakslista og implementerer ikkje PAC-val.
Viss interaktiv autentisering er naudsynt, er ProxyAuthentication.getPromptedAuthentication(prompt, host, port) ein eigen, potensielt blokkerande operasjon. Hald på den skilnaden når du migrerer kode, og kontroller API-tilgjenge mot den minst støtta Platform SDK-en til pluginet.