IntelliJ плагинінде HttpConfigurable-ді ауыстыру
Прокси конфигурациясын оқыңыз, соңғы нүктенің тіркелгі деректерін алыңыз және IntelliJ прокси API-лерімен платформаға сай қосылымдар ашыңыз.
HttpConfigurable орнын басушы бірнеше API-ге таралған. HTTP прокси параметрлерін тексеретін плагинге олар арқылы сұраныс жіберетін плагиннен өзге операция қажет.
| Қазіргі қолданыс | Көшіру API-і |
|---|---|
| Таңдалған прокси конфигурациясын оқу | ProxySettings.getInstance().getProxyConfiguration() |
| Белгілі тіркелгі деректерін алу немесе пайдаланушыдан сұрау | ProxyAuthentication |
| Конфигурацияланған статикалық соңғы нүкте үшін тіркелгі деректерін алу | getStaticProxyCredentials, ProxyUtils арқылы Java-ға ашылатын Kotlin кеңейтімі |
| Платформаның прокси таңдауымен URL ашу | HttpConnectionUtils.openConnection(location) немесе openHttpConnection(location) |
2024 жылғы IntelliJ Platform дереккөздері ұсынатын көшіру API-і үшін бұл желілік типтер 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-іне қарсы тексеріңіз.