Ersätta HttpConfigurable i ett IntelliJ-plugin
Läs proxykonfigurationen, hämta autentiseringsuppgifter för slutpunkter och öppna plattformsmedvetna anslutningar med IntelliJ:s proxy-API:er.
Ersättningen för HttpConfigurable är utspridd över flera API:er. Ett plugin som granskar inställningarna för HTTP-proxy behöver en annan åtgärd än ett plugin som skickar en begäran genom dem.
| Befintlig användning | Migrerings-API |
|---|---|
| Läsa den valda proxykonfigurationen | ProxySettings.getInstance().getProxyConfiguration() |
| Hämta kända autentiseringsuppgifter eller fråga användaren | ProxyAuthentication |
| Hämta autentiseringsuppgifter för den konfigurerade statiska slutpunkten | getStaticProxyCredentials, ett Kotlin-tillägg som exponeras för Java via ProxyUtils |
| Öppna en URL med plattformens proxyval | HttpConnectionUtils.openConnection(location) eller openHttpConnection(location) |
För det migrerings-API som IntelliJ Platform-källorna från 2024 representerar ligger dessa nätverkstyper i com.intellij.util.net. Kotlin kan till exempel granska konfigurationen och slå upp kända autentiseringsuppgifter för statisk proxy utan att fråga:
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älparen kräver en ProxyCredentialProvider; metodreferensen anpassar autentiseringstjänsten till det gränssnittet. Autentiseringsuppgifterna slås upp efter den konfigurerade proxyns värd och port. Ett null-resultat kan betyda att konfigurationen inte är statisk, så det bevisar inte att en PAC-vald proxy inte behöver autentisering.
När den faktiska uppgiften är att göra en HTTP-begäran ska du använda plattformens anslutningshjälpare i stället för att bygga upp routingen igen från värd- och portfälten. Den rådfrågar plattformens proxyväljare för mål-URL:en. Att konvertera en statisk konfiguration med asJavaProxy() respekterar inte dess undantagslista och implementerar inte PAC-val.
Om interaktiv autentisering krävs är ProxyAuthentication.getPromptedAuthentication(prompt, host, port) en separat, potentiellt blockerande åtgärd. Behåll den skillnaden när du migrerar kod och kontrollera API-tillgängligheten mot pluginets lägsta supportede Platform SDK.