HttpConfigurable-ի փոխարինումը IntelliJ պլագինում
Կարդացեք պրոքսիի կարգավորումը, ստացեք վերջնակետի հավատարմագրերը և բացեք պլատֆորմին համապատասխան կապեր IntelliJ պրոքսի API-ներով։
HttpConfigurable-ի փոխարինողը տարածված է մի քանի API-ներում։ HTTP պրոքսիի կարգավորումները ստուգող պլագինին անհրաժեշտ է այլ գործողություն, քան դրանց միջոցով հարցում ուղարկող պլագինինը։
| Գոյություն ունեցող օգտագործում | Միգրացիայի API |
|---|---|
| Ընտրված պրոքսիի կարգավորումը կարդալը | ProxySettings.getInstance().getProxyConfiguration() |
| Հայտնի հավատարմագրերի ստացումը կամ օգտատիրոջից հարցնելը | ProxyAuthentication |
| Կարգավորված ստատիկ վերջնակետի հավատարմագրերի ստացումը | getStaticProxyCredentials, Kotlin ընդլայնում, որը հասանելի է Java-ին ProxyUtils-ի միջոցով |
| 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-ի նկատմամբ։