A HttpConfigurable helyettesítése több API között oszlik meg. Egy bővítmény, amely a HTTP-proxy beállításait vizsgálja, más műveletet igényel, mint egy bővítmény, amely rajtuk keresztül küld kérést.

Jelenlegi használatMigrációs API
A kiválasztott proxykonfiguráció beolvasásaProxySettings.getInstance().getProxyConfiguration()
Ismert hitelesítő adatok lekérése vagy a felhasználó megkérdezéseProxyAuthentication
Hitelesítő adatok beszerzése a beállított statikus végponthozgetStaticProxyCredentials, egy Kotlin-kiterjesztés, amelyet a ProxyUtils tesz elérhetővé Java számára
URL megnyitása a platform proxyválasztásávalHttpConnectionUtils.openConnection(location) vagy openHttpConnection(location)

A 2024-es IntelliJ Platform-források által képviselt migrációs API esetében ezek a hálózati típusok a com.intellij.util.net csomagban találhatók. A Kotlin például kérés nélkül megvizsgálhatja a konfigurációt, és kikeresheti az ismert statikus proxy hitelesítő adatait:

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

A segédnek ProxyCredentialProvider kell; a metódushivatkozás a hitelesítési szolgáltatást ehhez az interfészhez igazítja. A hitelesítő adatok lekérése a beállított proxy hosztja és portja alapján történik. A null eredmény azt jelentheti, hogy a konfiguráció nem statikus, tehát nem bizonyítja, hogy a PAC által kiválasztott proxy nem igényel hitelesítést.

Amikor a tényleges feladat HTTP-kérés küldése, használja a platform kapcsolatsegédjét ahelyett, hogy a hoszt- és portmezőkből újraépítené az útválasztást. Az a cél-URL-hez a platform proxyválasztóját kérdezi meg. Egy statikus konfiguráció asJavaProxy() segítségével történő átalakítása nem veszi figyelembe a kivétellistáját, és nem valósítja meg a PAC-választást.

Ha interaktív hitelesítés szükséges, a ProxyAuthentication.getPromptedAuthentication(prompt, host, port) külön, potenciálisan blokkoló művelet. Őrizze meg ezt a különbséget a kód migrálásakor, és ellenőrizze az API elérhetőségét a bővítmény minimálisan támogatott Platform SDK-jához képest.

Kapcsolódó cikkek