Înlocuirea HttpConfigurable într-un plugin IntelliJ
Citiți configurația proxy, obțineți acreditările punctului final și deschideți conexiuni adaptate platformei cu API-urile proxy ale IntelliJ.
Î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 selectate | ProxySettings.getInstance().getProxyConfiguration() |
| Obținerea acreditărilor cunoscute sau întrebarea utilizatorului | ProxyAuthentication |
| Obținerea acreditărilor pentru punctul final static configurat | getStaticProxyCredentials, o extensie Kotlin expusă către Java prin ProxyUtils |
| Deschiderea unui URL cu selecția de proxy a platformei | HttpConnectionUtils.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.