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-тай харьцуулан шалгана уу.