جانشین HttpConfigurable در چند API پراکنده است. افزونه‌ای که تنظیمات پروکسی HTTP را بررسی می‌کند به عملیاتی متفاوت از افزونه‌ای نیاز دارد که درخواستی از طریق آن‌ها می‌فرستد.

کاربرد موجودAPI مهاجرت
خواندن پیکربندی پروکسی انتخاب‌شدهProxySettings.getInstance().getProxyConfiguration()
بازیابی اعتبارنامه‌های شناخته‌شده یا پرسیدن از کاربرProxyAuthentication
دریافت اعتبارنامه برای نقطه پایانی ایستای پیکربندی‌شدهgetStaticProxyCredentials، یک افزونه Kotlin که از طریق ProxyUtils برای جاوا در دسترس است
باز کردن نشانی با انتخاب پروکسی پلتفرم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 است، از کمک‌تابع اتصال پلتفرم استفاده کنید، نه بازسازی مسیریابی از فیلدهای میزبان و درگاه. این کمک‌تابع انتخابگر پروکسی پلتفرم را برای نشانی مقصد بررسی می‌کند. تبدیل پیکربندی ایستا با asJavaProxy() فهرست استثناهای آن را رعایت نمی‌کند و انتخاب PAC را پیاده‌سازی نمی‌کند.

اگر احراز هویت تعاملی لازم است، ProxyAuthentication.getPromptedAuthentication(prompt, host, port) عملیاتی جداگانه و احتمالاً مسدودکننده است. این تمایز را در مهاجرت کد حفظ کنید و دسترس‌پذیری API را با حداقل Platform SDK پشتیبانی‌شده افزونه بسنجید.

مقالات مرتبط