HttpClient.DefaultProxy.IsBypassed ilə .NET NO_PROXY qaydalarını yoxlayın
HttpClient hər ikisi üçün proksidən yan keçməlidirsə, həm çılpaq domeni, həm də əvvəlində nöqtə olan formanı sadalayın, sonra IsBypassed-i yoxlayın.
HttpClient-in sənədləşdirilmiş mühit-proksi siyasətinə görə example.internal və .example.internal fərqli uyğunluqlara malikdir. Çılpaq ad valideyn hostu seçir; əvvəlində nöqtə olan forma onun alt domenlərini seçir.
Hər ikisi birbaşa olmalıdırsa, başlanğıc mühitinə hər ikisini daxil edin:
export no_proxy='example.internal,.example.internal'
Bunları nəzərdə tutulan mövcud yan keçmə siyahısı ilə birləşdirin. Dəyişən adlarının hərf həssas olduğu sistemlərdə .NET əvvəlcə kiçik hərfli proksi mühit adlarını, sonra böyük hərfliləri yoxlayır, buna görə köhnə no_proxy NO_PROXY-dən üstün ola bilər.
Tətbiqin daxilində standart seçicini təyinat HTTP sorğusunu göndərmədən yoxlamaq olar:
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)}");
}
Parça System və System.Net.Http istifadə edir. Tətbiq açıq şəkildə başqa IWebProxy təqdim edibsə, əvəzində faktiki handler proksisini yoxlayın. Nəzərdə tutulan mühiti standart proksi işə salınmazdan əvvəl qurun.
Bunlar .NET-in sənədləşdirilmiş qaydalarıdır. Eyni sətri istifadə edən curl nəticəsi başqa bir müştərinin eyni marşrutu seçdiyini sübut etmir və yan keçmə qərarı hələ də birbaşa şəbəkə əlçatanlığı tələb edir.