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'сына салыштырып текшериңиз.