وفق سياسة الوكيل البيئي الموثّقة في 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 بالسلاسل نفسها لا تثبت أن عميلًا آخر اختار المسار نفسه، وقرار التجاوز لا يزال يحتاج إلى إمكانية وصول مباشرة إلى الشبكة.

مقالات ذات صلة