درخواست کو آپ کے پراکسی 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 پراکسی فہرست کی اصل HTTP پراکسی سے بدلیں۔ یہ top-level syntax جدید C# console پروجیکٹ کے لیے مناسب ہے؛ پرانے پروجیکٹ بیانات asynchronous Main میں رکھ سکتے ہیں۔

Handler کی دونوں properties دیکھیں: Proxy endpoint چنتی ہے اور UseProxy=true اس کا استعمال چالو کرتی ہے۔ Endpoint الگ چلے مگر ایپ میں نہ چلے تو تصدیق کریں کہ کوئی کوڈ UseProxy بند نہیں کرتا اور call یہی instance استعمال کرتی ہے۔ الگ handler پراکسی کی process یا OS کے ذریعے دریافت پر انحصار سے بچاتا ہے۔

پراکسی چلانے والا اکاؤنٹ دے تو NetworkCredential کو WebProxy.Credentials property میں مقرر کریں۔ ویب سائٹ Authorization دوسرے مرحلے کے لیے ہے اور عوامی IP:port اندراج default login نہیں دیتا۔ http:// listener tunnel سے HTTPS لے جا سکتا ہے؛ منزل کی معمول کی تصدیق برقرار رکھیں۔

یہ مختصر پروگرام نکلتے وقت objects آزاد کرتا ہے۔ بار بار service call کے لیے .NET client lifetime رہنمائی اپنائیں اور ہر درخواست پر connection pool دوبارہ بنانے کے بجائے workload کے لیے client/handler برقرار رکھیں۔ واپس آنے والا status دیکھیں: کام کرتا پراکسی راستہ بھی ویب سائٹ کا انکار لے آ سکتا ہے۔

متعلقہ مضامین