HttpConfigurable vervangen in een IntelliJ-plug-in
Lees de proxyconfiguratie, haal inloggegevens voor eindpunten op en open platformbewuste verbindingen met de IntelliJ-proxy-API's.
De vervanging voor HttpConfigurable is verdeeld over meerdere API's. Een plug-in die de HTTP-proxyinstellingen onderzoekt, heeft een andere bewerking nodig dan een plug-in die er een verzoek door verstuurt.
| Bestaand gebruik | Migratie-API |
|---|---|
| De geselecteerde proxyconfiguratie lezen | ProxySettings.getInstance().getProxyConfiguration() |
| Bekende inloggegevens ophalen of de gebruiker vragen | ProxyAuthentication |
| Inloggegevens voor het geconfigureerde statische eindpunt verkrijgen | getStaticProxyCredentials, een Kotlin-extensie die via ProxyUtils voor Java beschikbaar is |
| Een URL openen met de proxykeuze van het platform | HttpConnectionUtils.openConnection(location) of openHttpConnection(location) |
Voor de migratie-API die de IntelliJ Platform-bronnen uit 2024 vertegenwoordigen, staan deze netwerktypen in com.intellij.util.net. Kotlin kan bijvoorbeeld de configuratie onderzoeken en bekende inloggegevens van een statische proxy opzoeken zonder te vragen:
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
)
)
De helper vereist een ProxyCredentialProvider; de methodereferentie past de authenticatiedienst aan die interface aan. Inloggegevens worden opgezocht op basis van de host en poort van de geconfigureerde proxy. Een null-resultaat kan betekenen dat de configuratie niet statisch is, dus het bewijst niet dat een via PAC gekozen proxy geen authenticatie nodig heeft.
Wanneer de eigenlijke taak het doen van een HTTP-verzoek is, gebruik dan de verbindingshelper van het platform in plaats van de routering opnieuw op te bouwen uit host- en poortvelden. Die raadpleegt de proxyselector van het platform voor de doel-URL. Een statische configuratie omzetten met asJavaProxy() respecteert de uitzonderingenlijst niet en implementeert geen PAC-selectie.
Als interactieve authenticatie nodig is, is ProxyAuthentication.getPromptedAuthentication(prompt, host, port) een afzonderlijke bewerking die kan blokkeren. Behoud dat onderscheid bij het migreren van code en controleer de API-beschikbaarheid tegen de minimaal ondersteunde Platform SDK van de plug-in.