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 brukMigrerings-API
Les den valgte proxykonfigurasjonenProxySettings.getInstance().getProxyConfiguration()
Hent kjent legitimasjon eller spør brukerenProxyAuthentication
Hent legitimasjon for det konfigurerte statiske endepunktetgetStaticProxyCredentials, en Kotlin-utvidelse eksponert for Java via ProxyUtils
Åpne en URL med plattformens proxyvalgHttpConnectionUtils.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.

Relaterte artikler