OkHttp-ի հարցումը չունի ընդհանուր փոփոխվող պրոքսի դաշտ։ Ընտրեք նախատեսված երթուղով հաճախորդը նախքան դրա զանգը ստեղծելը։

Երբ մնացած կարգավորումը պետք է մնա ընդհանուր, ստացեք երթուղավորված հաճախորդը գոյություն ունեցող հաճախորդից՝

OkHttpClient routed = baseClient.newBuilder()
    .proxy(new Proxy(Proxy.Type.HTTP,
        new InetSocketAddress("203.0.113.10", 8080)))
    .build();

Վերջնակետը միայն օրինակ է։ HTTP պրոքսիների ցանկից հանրային HTTP վերջնակետերը կարող են լրացնել այս սոկետի հասցեն թույլատրված հանրային ծառայության երթուղու համար, պայմանով, որ բազային հաճախորդի քաղաքականությունը նոր վերջնակետին պրոքսի հավատարմագրեր չտրամադրի։ OkHttp-ը փաստագրում է, որ newBuilder-ը կիսում է միացումների լողավազանի և թելերի ռեսուրսները սկզբնական հաճախորդի հետ։ Դա չի նշանակում, որ մեկ պրոքսիով հաստատված սոկետը կարող է վերապիտակավորվել որպես այլ երթուղի։ Միացման համապատասխանությունը դեռ կախված է երթուղու և հասցեի կարգավորումից։

Կրկնվող աշխատանքի համար պահեք սահմանափակ հաճախորդների հավաքածու՝ բանալիավորված այն երթուղավորման քաղաքականությամբ, որն իսկապես անհրաժեշտ է։ Խուսափեք անսահմանափակ քարտեզից, որի բանալիները պարունակում են երբևէ դիտված բոլոր ժամանակավոր հաշիվները կամ պրոքսի տարբերակները։

Ռեսուրսների կիսումը ազդում է նաև անջատման վրա։ Ընդհանուր քեշի փակումը կամ ընդհանուր դիսպետչերի անջատումը կարող է ազդել այդ ռեսուրսներն օգտագործող այլ ածանցյալ հաճախորդների վրա։ Ռեսուրսների սեփականությանը տվեք հստակ կիրառական մակարդակի կյանքի տևողություն՝ յուրաքանչյուր ածանցյալ հաճախորդին որպես մեկուսացված ցանցային ստեկ դիտարկելու փոխարեն։

Վերջապես, ներառեք ընտրված պրոքսիի ինքնությունը հենց զանգի մետատվյալներում։ «Վերջին ընտրված պրոքսի» գլոբալ փոփոխականը չի կարող նույնականացնել մի քանի միաժամանակյա հարցումների երթուղին։

Առնչվող հոդվածներ