החלפת HttpConfigurable בתוסף IntelliJ
קראו את תצורת ה-proxy, השיגו פרטי התחברות לנקודת הקצה ופתחו חיבורים מותאמי פלטפורמה באמצעות ממשקי ה-proxy של IntelliJ.
ההחלפה של 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 המינימלי שהתוסף תומך בו.