Замена за HttpConfigurable распоређена је на неколико API-ја. Додатак који прегледа подешавања HTTP проксија треба другу операцију од додатка који кроз њих шаље захтев.

Досадашња употребаAPI за миграцију
Читање изабране конфигурације проксијаProxySettings.getInstance().getProxyConfiguration()
Добављање познатих акредитива или питање корисникаProxyAuthentication
Прибављање акредитива за конфигурисану статичку крајњу тачкуgetStaticProxyCredentials, Kotlin проширење доступно Javi кроз ProxyUtils
Отварање URL-а помоћу избора проксија платформеHttpConnectionUtils.openConnection(location) или openHttpConnection(location)

За API за миграцију који представљају извори IntelliJ Platform-а из 2024, ови мрежни типови налазе се у com.intellij.util.net. На пример, Kotlin може прегледати конфигурацију и потражити познате акредитиве статичког проксија без упита:

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

Помоћник захтева ProxyCredentialProvider; референца на метод прилагођава сервис за аутентификацију том интерфејсу. Акредитиви се траже према хосту и порту конфигурисаног проксија. null резултат може значити да конфигурација није статичка, па не доказује да прокси изабран путем PAC-а не треба аутентификацију.

Када је стварни задатак слање HTTP захтева, користите помоћника за везу платформе уместо поновне изградње рутирања из поља хоста и порта. Он се саветује са бирачем проксија платформе за циљни URL. Претварање статичке конфигурације помоћу asJavaProxy() не поштује њен списак изузетака и не имплементира PAC избор.

Ако је потребна интерактивна аутентификација, ProxyAuthentication.getPromptedAuthentication(prompt, host, port) је засебна операција која може блокирати. Задржите ту разлику при миграцији кода и проверите доступност API-ја према минималном подржаном Platform SDK-у додатка.

Повезани чланци