Замена HttpConfigurable у IntelliJ додатку
Читајте конфигурацију проксија, прибавите акредитиве крајње тачке и отворите везе прилагођене платформи помоћу IntelliJ прокси API-ја.
Замена за 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-у додатка.