.NET HttpClient অনুরোধ proxy দিয়ে পাঠান
HttpClientHandler-এ WebProxy সাজান এবং proxy routing বন্ধ থাকা বা ভুল 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 প্রকল্পে মানায়; পুরোনো প্রকল্প statements-গুলো 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 পথও ওয়েবসাইটের প্রত্যাখ্যান বহন করতে পারে।