ההחלפה של HttpConfigurable מפוזרת על פני כמה ממשקים. תוסף שבוחן את הגדרות ה-proxy של HTTP זקוק לפעולה שונה מתוסף ששולח דרכו בקשה.

שימוש קייםממשק הגירה
קריאת תצורת ה-proxy שנבחרהProxySettings.getInstance().getProxyConfiguration()
אחזור פרטי התחברות מוכרים או שאלת המשתמשProxyAuthentication
השגת פרטי התחברות לנקודת הקצה הסטטית המוגדרתgetStaticProxyCredentials, הרחבת Kotlin החשופה ל-Java דרך ProxyUtils
פתיחת כתובת URL באמצעות בחירת ה-proxy של הפלטפורמהHttpConnectionUtils.openConnection(location) או openHttpConnection(location)

עבור ממשק ההגירה שהמקורות של IntelliJ Platform משנת 2024 מייצגים, טיפוסי הרשת האלה נמצאים ב-com.intellij.util.net. לדוגמה, Kotlin יכול לבחון את התצורה ולחפש פרטי התחברות מוכרים של proxy סטטי ללא בקשה:

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; הפניה לשיטה מתאימה את שירות האימות לממשק הזה. פרטי ההתחברות נשלבים לפי המארח והפורט של ה-proxy המוגדר. תוצאה null יכולה לומר שהתצורה אינה סטטית, ולכן היא אינה מוכיחה ש-proxy שנבחר באמצעות PAC אינו זקוק לאימות.

כשהמשימה האמיתית היא לשלוח בקשת HTTP, השתמשו בעוזר החיבור של הפלטפורמה במקום לבנות מחדש את הניתוב משדות המארח והפורט. הוא מתייעץ עם בורר ה-proxy של הפלטפורמה עבור כתובת היעד. המרת תצורה סטטית עם asJavaProxy() אינה מכבדת את רשימת החריגים שלה ואינה מיישמת בחירת PAC.

אם נדרש אימות אינטראקטיבי, ProxyAuthentication.getPromptedAuthentication(prompt, host, port) הוא פעולה נפרדת שעלולה לחסום. שמרו על ההבחנה הזו בעת הגירת קוד, ובדקו זמינות ממשק מול ה-Platform SDK המינימלי שהתוסף תומך בו.

מאמרים קשורים