Заместване на HttpConfigurable в плъгин за IntelliJ
Четете прокси конфигурацията, получавате идентификационни данни за крайна точка и отваряте съобразени с платформата връзки чрез прокси API на IntelliJ.
Заместителят на HttpConfigurable е разпределен в няколко API. Плъгин, който преглежда настройките на HTTP прокси, се нуждае от различна операция от плъгин, който изпраща заявка през тях.
| Текущо използване | API за миграция |
|---|---|
| Прочитане на избраната прокси конфигурация | ProxySettings.getInstance().getProxyConfiguration() |
| Извличане на известни идентификационни данни или питане на потребителя | ProxyAuthentication |
| Получаване на идентификационни данни за конфигурираната статична крайна точка | getStaticProxyCredentials, разширение за Kotlin, достъпно за Java чрез 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 на плъгина.