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

Схожі статті