.NET HttpClient တောင်းဆိုမှုများကို proxy မှ ပို့ခြင်း
HttpClientHandler တွင် WebProxy သတ်မှတ်ပြီး proxy လမ်းကြောင်းပိတ်ထားခြင်း သို့မဟုတ် client မှားတွင် ချိတ်ထားခြင်းကို ရှောင်ပါ။
တောင်းဆိုမှုသည် သင့် proxy handler ဖြင့် ဆောက်ထားသော HttpClient ကို သုံးရမည်။ ဆက်စပ်မှုမရှိသော WebProxy object ဖန်တီးခြင်းက အခြား client လမ်းကြောင်းကို မပြောင်းပါ။
using System;
using System.Net;
using System.Net.Http;
var proxy = new WebProxy("http://203.0.113.10:8080")
{
BypassProxyOnLocal = false
};
using var handler = new HttpClientHandler
{
Proxy = proxy,
UseProxy = true
};
using var client = new HttpClient(handler)
{
Timeout = TimeSpan.FromSeconds(15)
};
using var response = await client.GetAsync("https://example.com/");
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(await response.Content.ReadAsStringAsync());မှတ်တမ်းလိပ်စာကို သင့်ဝန်ဆောင်မှု သို့မဟုတ် HTTP proxy စာရင်းမှ တကယ့် HTTP proxy ဖြင့် အစားထိုးပါ။ ဤ top-level syntax သည် ခေတ်မီ C# console ပရောဂျက်အတွက် သင့်တော်သည်။ အဟောင်းများတွင် statement များကို asynchronous Main ထဲ ထည့်နိုင်သည်။
Handler property နှစ်ခုလုံးကို စစ်ပါ။ Proxy က endpoint ရွေးပြီး UseProxy=true က အသုံးပြုမှု ဖွင့်ပေးသည်။ Endpoint က သီးခြားအလုပ်လုပ်ပြီး အက်ပ်တွင်မလုပ်လျှင် ကုဒ်က UseProxy မပိတ်ကြောင်းနှင့် call က ယခု instance ကို သုံးကြောင်း အတည်ပြုပါ။ သီးသန့် handler သည် process သို့မဟုတ် OS ၏ proxy ရှာဖွေမှုအပေါ် မမှီခိုစေပါ။
Proxy လည်ပတ်သူက အကောင့်ပေးလျှင် NetworkCredential ကို WebProxy.Credentials property တွင် သတ်မှတ်ပါ။ ဝဘ်ဆိုက် Authorization က အခြားအဆင့်အတွက် ဖြစ်ပြီး အများသုံး IP:port စာရင်းဝင်က default login မပေးပါ။ http:// listener သည် tunnel ဖြင့် HTTPS သယ်နိုင်သည်။ ပုံမှန်ဦးတည်ရာစစ်ဆေးမှု ထားပါ။
ဤတိုတောင်းသောပရိုဂရမ်က ထွက်ချိန်တွင် object များ လွှတ်ပေးသည်။ ထပ်တလဲလဲ service call များအတွက် .NET client lifetime လမ်းညွှန်အတိုင်း လုပ်ပြီး တောင်းဆိုမှုတစ်ခုစီ connection pool ပြန်မဆောက်ဘဲ workload အတွက် client/handler ကို ထိန်းထားပါ။ ပြန်လာသော status ကို စစ်ပါ။ အလုပ်လုပ်သော proxy လမ်းကြောင်းပင် ဝဘ်ဆိုက်ငြင်းပယ်မှုကို သယ်လာနိုင်သည်။