Erstatning af HttpConfigurable i et IntelliJ-plugin
Læs proxykonfiguration, hent legitimationsoplysninger for slutpunkter, og åbn platformsbevidste forbindelser med IntelliJ-proxy-API'erne.
Erstatningen for HttpConfigurable er fordelt på flere API'er. Et plugin, der undersøger HTTP-proxyindstillingerne, har brug for en anden handling end et plugin, der sender en anmodning gennem dem.
| Eksisterende brug | Migrerings-API |
|---|---|
| Læs den valgte proxykonfiguration | ProxySettings.getInstance().getProxyConfiguration() |
| Hent kendte legitimationsoplysninger, eller spørg brugeren | ProxyAuthentication |
| Hent legitimationsoplysninger til det konfigurerede statiske slutpunkt | getStaticProxyCredentials, en Kotlin-udvidelse eksponeret til Java via ProxyUtils |
| Åbn en URL med platformens proxyvalg | HttpConnectionUtils.openConnection(location) eller openHttpConnection(location) |
For migrerings-API'et, som IntelliJ Platform-kilderne fra 2024 repræsenterer, ligger disse netværkstyper i com.intellij.util.net. Kotlin kan for eksempel undersøge konfigurationen og slå kendte legitimationsoplysninger for statisk proxy op uden at spørge:
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
)
)
Hjælperen kræver en ProxyCredentialProvider; metodereferencen tilpasser godkendelsestjenesten til den grænseflade. Legitimationsoplysninger slås op via den konfigurerede proxys vært og port. Et null-resultat kan betyde, at konfigurationen ikke er statisk, så det beviser ikke, at en PAC-valgt proxy ikke kræver godkendelse.
Når den egentlige opgave er at sende en HTTP-anmodning, skal du bruge platformens forbindelseshjælper i stedet for at genskabe routing ud fra vært- og portfelter. Den konsulterer platformens proxyvælger for destinations-URL'en. Konvertering af en statisk konfiguration med asJavaProxy() respekterer ikke dens undtagelsesliste og implementerer ikke PAC-valg.
Hvis interaktiv godkendelse er påkrævet, er ProxyAuthentication.getPromptedAuthentication(prompt, host, port) en separat, potentielt blokerende handling. Bevar den sondring, når du migrerer kode, og kontroller API-tilgængelighed mod pluginets mindst understøttede Platform SDK.