استبدال HttpConfigurable في إضافة IntelliJ
اقرأ إعدادات الوكيل، واحصل على بيانات اعتماد نقطة النهاية، وافتح اتصالات تراعي النظام الأساسي باستخدام واجهات برمجة وكيل IntelliJ.
بديل HttpConfigurable موزّع على عدة واجهات برمجية. الإضافة التي تفحص إعدادات وكيل HTTP تحتاج إلى عملية مختلفة عن الإضافة التي ترسل طلبًا عبرها.
| الاستخدام الحالي | واجهة الترحيل |
|---|---|
| قراءة إعدادات الوكيل المحددة | ProxySettings.getInstance().getProxyConfiguration() |
| استرداد بيانات الاعتماد المعروفة أو سؤال المستخدم | ProxyAuthentication |
| الحصول على بيانات الاعتماد لنقطة النهاية الثابتة المهيأة | getStaticProxyCredentials، امتداد Kotlin متاح لجافا عبر ProxyUtils |
| فتح عنوان URL باستخدام اختيار الوكيل في النظام الأساسي | HttpConnectionUtils.openConnection(location) أو openHttpConnection(location) |
بالنسبة لواجهة الترحيل التي تمثلها مصادر 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؛ ويُكيّف مرجع الدالة خدمة المصادقة مع تلك الواجهة. تُبحث بيانات الاعتماد حسب مضيف الوكيل المهيأ ومنفذه. قد تعني النتيجة الفارغة أن الإعدادات ليست ثابتة، لذا فهي لا تثبت أن وكيلًا مختارًا عبر PAC لا يحتاج إلى مصادقة.
عندما تكون المهمة الفعلية إرسال طلب HTTP، استخدم أداة الاتصال في النظام الأساسي بدلًا من إعادة بناء التوجيه من حقلي المضيف والمنفذ. فهي تستشير محدّد الوكيل في النظام الأساسي لعنوان URL الوجهة. تحويل إعدادات ثابتة باستخدام asJavaProxy() لا يحترم قائمة الاستثناءات الخاصة بها ولا ينفّذ اختيار PAC.
إذا لزمت مصادقة تفاعلية، فإن ProxyAuthentication.getPromptedAuthentication(prompt, host, port) عملية منفصلة قد تحجب التنفيذ. احتفظ بهذا التمييز عند ترحيل الشيفرة، وتحقق من توافر الواجهة مقابل الحد الأدنى من Platform SDK الذي تدعمه الإضافة.