A HttpConfigurable lecserélése egy IntelliJ-bővítményben
Olvassa be a proxykonfigurációt, szerezze be a végpont hitelesítő adatait, és nyisson platformtudatos kapcsolatokat az IntelliJ proxy API-jaival.
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álat | Migrációs API |
|---|---|
| A kiválasztott proxykonfiguráció beolvasása | ProxySettings.getInstance().getProxyConfiguration() |
| Ismert hitelesítő adatok lekérése vagy a felhasználó megkérdezése | ProxyAuthentication |
| Hitelesítő adatok beszerzése a beállított statikus végponthoz | getStaticProxyCredentials, egy Kotlin-kiterjesztés, amelyet a ProxyUtils tesz elérhetővé Java számára |
| URL megnyitása a platform proxyválasztásával | HttpConnectionUtils.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.