Замена 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 плагіна.