Înlocuitorul pentru HttpConfigurable este împărțit între mai multe API-uri. Un plugin care inspectează setările de proxy HTTP are nevoie de o operație diferită de un plugin care trimite o cerere prin ele.

Utilizare existentăAPI de migrare
Citirea configurației proxy selectateProxySettings.getInstance().getProxyConfiguration()
Obținerea acreditărilor cunoscute sau întrebarea utilizatoruluiProxyAuthentication
Obținerea acreditărilor pentru punctul final static configuratgetStaticProxyCredentials, o extensie Kotlin expusă către Java prin ProxyUtils
Deschiderea unui URL cu selecția de proxy a platformeiHttpConnectionUtils.openConnection(location) sau openHttpConnection(location)

Pentru API-ul de migrare reprezentat de sursele IntelliJ Platform din 2024, aceste tipuri de rețea se află în com.intellij.util.net. De exemplu, Kotlin poate inspecta configurația și poate căuta acreditările cunoscute ale unui proxy static fără a solicita:

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

Ajutorul necesită un ProxyCredentialProvider; referința la metodă adaptează serviciul de autentificare la acea interfață. Acreditările sunt căutate după gazda și portul proxy-ului configurat. Un rezultat null poate însemna că configurația nu este statică, deci nu demonstrează că un proxy selectat prin PAC nu necesită autentificare.

Când sarcina reală este să faceți o cerere HTTP, folosiți ajutorul de conexiune al platformei în loc să reconstruiți rutarea din câmpurile de gazdă și port. Acesta consultă selectorul de proxy al platformei pentru URL-ul destinație. Convertirea unei configurații statice cu asJavaProxy() nu respectă lista sa de excepții și nu implementează selecția PAC.

Dacă este necesară autentificarea interactivă, ProxyAuthentication.getPromptedAuthentication(prompt, host, port) este o operație separată, posibil blocantă. Păstrați această distincție la migrarea codului și verificați disponibilitatea API-ului față de Platform SDK-ul minim acceptat de plugin.

Articole similare