جایگزینی HttpConfigurable در افزونه IntelliJ
پیکربندی پروکسی را بخوانید، اعتبارنامههای نقطه پایانی را به دست آورید و با APIهای پروکسی IntelliJ اتصالهای سازگار با پلتفرم باز کنید.
جانشین 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 پشتیبانیشده افزونه بسنجید.