Sostituire HttpConfigurable in un plugin IntelliJ
Leggi la configurazione del proxy, ottieni le credenziali dell'endpoint e apri connessioni consapevoli della piattaforma con le API proxy di IntelliJ.
Il sostituto di HttpConfigurable è distribuito su più API. Un plugin che ispeziona le impostazioni del proxy HTTP necessita di un'operazione diversa da un plugin che invia una richiesta attraverso di esse.
| Uso esistente | API di migrazione |
|---|---|
| Leggere la configurazione proxy selezionata | ProxySettings.getInstance().getProxyConfiguration() |
| Recuperare credenziali note o chiedere all'utente | ProxyAuthentication |
| Ottenere le credenziali per l'endpoint statico configurato | getStaticProxyCredentials, un'estensione Kotlin esposta a Java tramite ProxyUtils |
| Aprire un URL con la selezione proxy della piattaforma | HttpConnectionUtils.openConnection(location) o openHttpConnection(location) |
Per l'API di migrazione rappresentata dai sorgenti di IntelliJ Platform del 2024, questi tipi di rete si trovano in com.intellij.util.net. Ad esempio, Kotlin può ispezionare la configurazione e cercare le credenziali note di un proxy statico senza richiesta:
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
)
)
L'helper richiede un ProxyCredentialProvider; il riferimento al metodo adatta il servizio di autenticazione a quell'interfaccia. Le credenziali vengono cercate in base all'host e alla porta del proxy configurato. Un risultato null può indicare che la configurazione non è statica, quindi non dimostra che un proxy selezionato tramite PAC non richieda autenticazione.
Quando il compito reale è effettuare una richiesta HTTP, usa l'helper di connessione della piattaforma invece di ricostruire l'instradamento dai campi host e porta. Consulta il selettore proxy della piattaforma per l'URL di destinazione. Convertire una configurazione statica con asJavaProxy() non rispetta il suo elenco di eccezioni e non implementa la selezione PAC.
Se è richiesta l'autenticazione interattiva, ProxyAuthentication.getPromptedAuthentication(prompt, host, port) è un'operazione separata e potenzialmente bloccante. Mantieni questa distinzione durante la migrazione del codice e verifica la disponibilità delle API rispetto al Platform SDK minimo supportato dal plugin.