IntelliJ پلگ اِن میں HttpConfigurable کی تبدیلی
پراکسی کنفیگریشن پڑھیں، اینڈ پوائنٹ اسناد حاصل کریں اور IntelliJ پراکسی APIs کے ساتھ پلیٹ فارم کے مطابق کنکشن کھولیں۔
HttpConfigurable کا متبادل کئی APIs میں پھیلا ہوا ہے۔ HTTP پراکسی کی ترتیبات کا جائزہ لینے والے پلگ اِن کو اُس پلگ اِن سے مختلف عمل درکار ہے جو اُن کے ذریعے درخواست بھیجتا ہے۔
| موجودہ استعمال | منتقلی API |
|---|---|
| منتخب پراکسی کنفیگریشن پڑھنا | ProxySettings.getInstance().getProxyConfiguration() |
| معلوم اسناد حاصل کرنا یا صارف سے پوچھنا | ProxyAuthentication |
| ترتیب شدہ اسٹیٹک اینڈ پوائنٹ کے لیے اسناد حاصل کرنا | getStaticProxyCredentials، ایک Kotlin ایکسٹینشن جو ProxyUtils کے ذریعے Java کے لیے کھلا ہے |
| پلیٹ فارم کے پراکسی انتخاب کے ساتھ URL کھولنا | HttpConnectionUtils.openConnection(location) یا openHttpConnection(location) |
2024 IntelliJ Platform ذرائع کی نمائندگی کرنے والی منتقلی API کے لیے، یہ نیٹ ورک اقسام 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 درخواست کرنا ہو، تو ہوسٹ اور پورٹ فیلڈز سے روٹنگ دوبارہ بنانے کے بجائے پلیٹ فارم کنکشن مددگار استعمال کریں۔ یہ منزل URL کے لیے پلیٹ فارم کے پراکسی منتخب کنندہ سے مشورہ کرتا ہے۔ asJavaProxy() کے ساتھ اسٹیٹک کنفیگریشن تبدیل کرنے سے اُس کی استثنا فہرست کا احترام نہیں ہوتا اور PAC انتخاب نافذ نہیں ہوتا۔
اگر انٹرایکٹو توثیق درکار ہو، تو ProxyAuthentication.getPromptedAuthentication(prompt, host, port) ایک الگ، ممکنہ طور پر رکاوٹ ڈالنے والا عمل ہے۔ کوڈ منتقل کرتے وقت یہ فرق برقرار رکھیں، اور API کی دستیابی کو پلگ اِن کے کم سے کم معاون Platform SDK کے مقابلے میں جانچیں۔