ตามนโยบายพร็อกซีจากสภาพแวดล้อมที่จัดทำเอกสารไว้ของ 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 ที่ใช้สตริงเดียวกันไม่ได้ยืนยันว่าไคลเอนต์อื่นเลือกเส้นทางเดียวกัน และการตัดสินใจข้ามพร็อกซียังต้องมีการเข้าถึงเครือข่ายโดยตรง

บทความที่เกี่ยวข้อง