Der Ersatz für HttpConfigurable verteilt sich auf mehrere APIs. Ein Plugin, das die Einstellungen für den HTTP-Proxy prüft, braucht eine andere Operation als ein Plugin, das über sie eine Anfrage sendet.

Bisherige VerwendungMigrations-API
Die ausgewählte Proxy-Konfiguration lesenProxySettings.getInstance().getProxyConfiguration()
Bekannte Zugangsdaten abrufen oder den Benutzer fragenProxyAuthentication
Zugangsdaten für den konfigurierten statischen Endpunkt beziehengetStaticProxyCredentials, eine Kotlin-Erweiterung, die über ProxyUtils für Java bereitgestellt wird
Eine URL über die Proxy-Auswahl der Plattform öffnenHttpConnectionUtils.openConnection(location) oder openHttpConnection(location)

Für die Migrations-API der IntelliJ-Platform-Quellen von 2024 liegen diese Netzwerktypen in com.intellij.util.net. Kotlin kann beispielsweise die Konfiguration prüfen und bekannte Zugangsdaten für statische Proxys nachschlagen, ohne eine Eingabe anzufordern:

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
    )
)

Der Helfer benötigt einen ProxyCredentialProvider; die Methodenreferenz passt den Authentifizierungsdienst an dieses Interface an. Zugangsdaten werden über Host und Port des konfigurierten Proxys nachgeschlagen. Ein Null-Ergebnis kann bedeuten, dass die Konfiguration nicht statisch ist; es belegt also nicht, dass ein per PAC ausgewählter Proxy keine Authentifizierung benötigt.

Wenn die eigentliche Aufgabe darin besteht, eine HTTP-Anfrage zu stellen, verwenden Sie den Verbindungshelfer der Plattform, statt das Routing aus Host- und Port-Feldern nachzubauen. Er fragt den Proxy-Selektor der Plattform für die Ziel-URL ab. Das Umwandeln einer statischen Konfiguration mit asJavaProxy() berücksichtigt deren Ausnahmeliste nicht und implementiert keine PAC-Auswahl.

Wenn eine interaktive Authentifizierung erforderlich ist, ist ProxyAuthentication.getPromptedAuthentication(prompt, host, port) eine separate, potenziell blockierende Operation. Behalten Sie diese Unterscheidung bei der Migration von Code bei und prüfen Sie die Verfügbarkeit der API gegen das minimal unterstützte Platform SDK des Plugins.

Ähnliche Artikel