ပရောက်စီ အကောင့်တစ်ခုစီအတွက် သီးခြား .NET ကိုင်တွယ်ကိရိယာ ထားရှိပါ
တောင်းဆိုမှုများကို ဝန်ဆောင်နေပြီဖြစ်သော transport ပေါ်တွင် WebProxy.Credentials ကို အစားထိုးမည့်အစား တစ်ပြိုင်နက် အကောင့်များအတွက် သီးခြား ကိုင်တွယ်ကိရိယာများ တည်ဆောက်ပါ။
transport သည် ၎င်း၏ pool manager ကို ဖန်တီးစဉ် ရွေးချယ်ခဲ့သော ပရောက်စီ အထောက်အထား ပံ့ပိုးသူ အရာဝတ္ထုကို သိမ်းဆည်းထားနိုင်သည်။ ထို့နောက် WebProxy.Credentials ကို အစားထိုးခြင်းသည် ယုံကြည်စိတ်ချရသော အကောင့်ပြောင်းလဲမှု မဟုတ်ပါ။
client ကို အသုံးမပြုမီ လမ်းကြောင်းနှင့် အကောင့်ကို အတူတကွ ဖန်တီးပါ-
var proxy = new System.Net.WebProxy(proxyEndpoint)
{
Credentials = new System.Net.NetworkCredential(proxyUser, proxyPassword)
};
var handler = new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = proxy
};
var client = new System.Net.Http.HttpClient(handler);အဆုံးမှတ်နှင့် အထောက်အထားများသည် အပလီကေးရှင်း ဖွဲ့စည်းမှုမှ လာပါသည်။ ဒုတိယ အထောက်အထားအတွက် အခြား ကိုင်တွယ်ကိရိယာ တစ်ခု တည်ဆောက်ပါ။ ပထမ ကိုင်တွယ်ကိရိယာကို မျှဝေသော အခြား HttpClient သည် ၎င်း၏ မူဝါဒကိုလည်း မျှဝေပါသည်။
စိတ်ကြိုက် ICredentials ပံ့ပိုးသူသည် နောက်ပိုင်း စိန်ခေါ်မှုများကို ဖြေကြားနိုင်သော်လည်း တည်ဆောက်ပြီးသား tunnel ကို အခြား အကောင့်အဖြစ် ပြန်လည် တံဆိပ်တပ်နိုင်မည် မဟုတ်ပါ။ အညီအမျှ မဟုတ်သော ခေါ်ဆိုမှုများ ပတ်လည်တွင် တစ်ခုတည်းသော အသုံးပြုသူအမည်/စကားဝှက်ကို သတ်မှတ်ခြင်းသည် စိန်ခေါ်မှု အချိန်နှင့် အကောင့် ပိုင်ဆိုင်မှုကို ပဋိပက္ခတွင် ထားရစ်သည်။
ပြန်လည် အသုံးပြုရန် လိုအပ်သောအခါ ကန့်သတ်ထားသော client အစုအဝေးကို ထားရှိပါ။ ၎င်း၏ transport ကို စွန့်ပစ်မည့်အရင် အလုပ်ဟောင်းကို ဖောက်ထုတ်ပါ။ တောင်းဆိုမှုတစ်ခုစီအတွက် ကိုင်တွယ်ကိရိယာ အသစ်တစ်ခုသည် ချိတ်ဆက်မှု pool များကို ဖြုန်းတီးသည်။ သမိုင်းဝင် အကောင့်အားလုံးကို ထာဝရ သိမ်းထားခြင်းက ၎င်းတို့ကို အကန့်အသတ်မရှိ ကြီးထွားစေသည်။