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 нәтижесі басқа клиенттің сол маршрутты таңдағанын дәлелдемейді, ал айналып өту шешімі әлі де тікелей желілік қолжетімділікті қажет етеді.