HttpClient.DefaultProxy.IsBypassed کے ساتھ .NET کے NO_PROXY قواعد جانچیں
جب HttpClient کو دونوں کے لیے پراکسی سے گزرنا ہو تو ننگا ڈومین اور ابتدا میں نقطہ والی شکل دونوں درج کریں، پھر IsBypassed دیکھیں۔
HttpClient کی دستاویزی ماحول پراکسی پالیسی کے مطابق example.internal اور .example.internal مختلف طریقے سے مماثل ہوتے ہیں۔ ننگا نام اصل میزبان منتخب کرتا ہے؛ ابتدا میں نقطہ والی شکل اس کے ذیلی ڈومین منتخب کرتی ہے۔
اگر دونوں کو براہ راست جانا ہو تو دونوں کو آغاز کے ماحول میں شامل کریں:
export no_proxy='example.internal,.example.internal'
انہیں مطلوبہ موجودہ بائی پاس فہرست میں شامل کریں۔ جن نظاموں میں متغیر کے نام بڑے اور چھوٹے حروف میں فرق کرتے ہیں، وہاں .NET پہلے چھوٹے حروف والے پراکسی ماحول کے نام جانچتا ہے، پھر بڑے حروف والے، اس لیے پرانا no_proxy، NO_PROXY پر فوقیت پا سکتا ہے۔
ایپلیکیشن کے اندر، منزل کی HTTP درخواست بھیجے بغیر طے شدہ منتخب کنندہ کا جائزہ لیا جا سکتا ہے:
foreach (var host in new[] {
"example.internal", "api.example.internal", "other.internal"
})
{
var uri = new Uri("https://" + host + "/");
Console.WriteLine($"{host}: bypass={HttpClient.DefaultProxy.IsBypassed(uri)}");
}
یہ ٹکڑا System اور System.Net.Http استعمال کرتا ہے۔ اگر ایپلیکیشن نے واضح طور پر کوئی دوسرا IWebProxy دیا ہے تو اس کے بجائے اصل ہینڈلر پراکسی دیکھیں۔ مطلوبہ ماحول طے کریں قبل اس کے کہ طے شدہ پراکسی شروع ہو۔
یہ .NET کے دستاویزی قواعد ہیں۔ اسی سٹرنگ والا curl نتیجہ یہ ثابت نہیں کرتا کہ کسی دوسرے کلائنٹ نے وہی راستہ چنا، اور بائی پاس کے فیصلے کے لیے اب بھی براہ راست نیٹ ورک رسائی درکار ہے۔