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 esistenteAPI di migrazione
Leggere la configurazione proxy selezionataProxySettings.getInstance().getProxyConfiguration()
Recuperare credenziali note o chiedere all'utenteProxyAuthentication
Ottenere le credenziali per l'endpoint statico configuratogetStaticProxyCredentials, un'estensione Kotlin esposta a Java tramite ProxyUtils
Aprire un URL con la selezione proxy della piattaformaHttpConnectionUtils.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.

Articoli correlati