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 brukMigrerings-API
Les den valde proxykonfigurasjonenProxySettings.getInstance().getProxyConfiguration()
Hent kjend legitimasjon eller spør brukarenProxyAuthentication
Hent legitimasjon for det konfigurerte statiske endepunktetgetStaticProxyCredentials, ei Kotlin-utviding eksponert for Java via ProxyUtils
Opne ein URL med proxyvalet til plattformenHttpConnectionUtils.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.

Relaterte artiklar