HttpConfigurable चा पर्याय अनेक API मध्ये विखुरलेला आहे. HTTP प्रॉक्सी सेटिंग्ज तपासणाऱ्या प्लगइनला त्यांच्यातून विनंती पाठवणाऱ्या प्लगइनपेक्षा वेगळे ऑपरेशन आवश्यक असते.

सध्याचा वापरमायग्रेशन API
निवडलेले प्रॉक्सी कॉन्फिगरेशन वाचणेProxySettings.getInstance().getProxyConfiguration()
ज्ञात क्रेडेन्शियल्स मिळवणे किंवा वापरकर्त्याला विचारणेProxyAuthentication
कॉन्फिगर केलेल्या स्थिर एंडपॉइंटसाठी क्रेडेन्शियल्स मिळवणेgetStaticProxyCredentials, ProxyUtils द्वारे Java साठी उघडलेला Kotlin विस्तार
प्लॅटफॉर्मच्या प्रॉक्सी निवडीने 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) हे स्वतंत्र, संभाव्य अडवणारे ऑपरेशन आहे. कोड मायग्रेट करताना हा फरक टिकवा आणि प्लगइनच्या किमान समर्थित Platform SDK विरुद्ध API उपलब्धता तपासा.

संबंधित लेख