ការជំនួស HttpConfigurable ក្នុងកម្មវិធីបន្ថែម IntelliJ
អានការកំណត់រចនាសម្ព័ន្ធប្រូកស៊ី ទទួលបានព័ត៌មានសម្គាល់ចំណុចបញ្ចប់ និងបើកការតភ្ជាប់ដែលសមស្របនឹងវេទិកាជាមួយ API ប្រូកស៊ីរបស់ IntelliJ។
អ្នកជំនួស HttpConfigurable ត្រូវបានបំបែកលើ API ជាច្រើន។ កម្មវិធីបន្ថែមដែលពិនិត្យការកំណត់ប្រូកស៊ី HTTP ត្រូវការប្រតិបត្តិការខុសពីកម្មវិធីបន្ថែមដែលផ្ញើសំណើតាមរយៈពួកវា។
| ការប្រើប្រាស់បច្ចុប្បន្ន | API ផ្លាស់ប្តូរ |
|---|---|
| អានការកំណត់ប្រូកស៊ីដែលបានជ្រើសរើស | ProxySettings.getInstance().getProxyConfiguration() |
| ទទួលបានព័ត៌មានសម្គាល់ដែលគេស្គាល់ ឬសួរអ្នកប្រើ | ProxyAuthentication |
| ទទួលបានព័ត៌មានសម្គាល់សម្រាប់ចំណុចបញ្ចប់ស្ថិតិដែលបានកំណត់ | getStaticProxyCredentials ជាផ្នែកបន្ថែម Kotlin ដែលបង្ហាញដល់ Java តាមរយៈ ProxyUtils |
| បើក URL ដោយប្រើការជ្រើសរើសប្រូកស៊ីរបស់វេទិកា | HttpConnectionUtils.openConnection(location) ឬ openHttpConnection(location) |
សម្រាប់ API ផ្លាស់ប្តូរដែលតំណាងដោយប្រភព 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; ការយោងវិធីសាស្ត្រសម្របសេវាកម្មផ្ទៀងផ្ទាត់ទៅចំណុចប្រទាក់នោះ។ ព័ត៌មានសម្គាល់ត្រូវបានរកតាមឈ្មោះម៉ាស៊ីន និងច្រករបស់ប្រូកស៊ីដែលបានកំណត់។ លទ្ធផល null អាចមានន័យថាការកំណត់មិនមែនស្ថិតិ ដូច្នេះវាមិនបញ្ជាក់ថាប្រូកស៊ីដែលជ្រើសដោយ PAC មិនត្រូវការផ្ទៀងផ្ទាត់ទេ។
នៅពេលការងារពិតគឺការធ្វើសំណើ HTTP សូមប្រើឧបករណ៍ជំនួយការតភ្ជាប់របស់វេទិកា ជាជាងកសាងផ្លូវឡើងវិញពីវាលម៉ាស៊ីន និងច្រក។ វាពិគ្រោះជាមួយឧបករណ៍ជ្រើសប្រូកស៊ីរបស់វេទិកាសម្រាប់ URL គោលដៅ។ ការបំប្លែងការកំណត់ស្ថិតិដោយ asJavaProxy() មិនគោរពបញ្ជីករណីលើកលែងរបស់វា ហើយមិនអនុវត្តការជ្រើសរើស PAC ទេ។
ប្រសិនបើត្រូវការការផ្ទៀងផ្ទាត់អន្តរកម្ម ProxyAuthentication.getPromptedAuthentication(prompt, host, port) គឺជាប្រតិបត្តិការដាច់ដោយឡែក ដែលអាចរារាំង។ រក្សាភាពខុសគ្នានេះនៅពេលផ្លាស់ប្តូរកូដ ហើយពិនិត្យភាពអាចប្រើបានរបស់ API ធៀបនឹង Platform SDK អប្បបរមាដែលកម្មវិធីបន្ថែមគាំទ្រ។