Kontrollo rregullat NO_PROXY të .NET me HttpClient.DefaultProxy.IsBypassed
Radhit si domenin e thjeshtë ashtu edhe formën me pikë fillestare kur HttpClient duhet të anashkalojë proxy-n për të dyja, pastaj inspekto IsBypassed.
Sipas politikës së dokumentuar të proxy-t të mjedisit të HttpClient, example.internal dhe .example.internal përputhen në mënyra të ndryshme. Emri i thjeshtë zgjedh hostin prind; forma me pikë fillestare zgjedh nëndomenet e tij.
Nëse të dyja duhet të shkojnë drejtpërdrejt, përfshiji të dyja në mjedisin e nisjes:
export no_proxy='example.internal,.example.internal'
Bashkoji këto me listën ekzistuese të anashkalimit që synon. Në sistemet ku emrat e variablave dallojnë shkronjat e mëdha nga të voglat, .NET kontrollon fillimisht emrat e mjedisit të proxy-t me shkronja të vogla dhe pastaj ata me shkronja të mëdha, ndaj një no_proxy i vjetruar mund të ketë përparësi ndaj NO_PROXY.
Brenda aplikacionit, përzgjedhësi i parazgjedhur mund të inspektohet pa dërguar kërkesën HTTP drejt destinacionit:
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)}");
}
Fragmenti përdor System dhe System.Net.Http. Nëse aplikacioni ka dhënë në mënyrë të qartë një IWebProxy tjetër, inspekto në vend të kësaj proxy-n aktual të trajtuesit. Vendos mjedisin e synuar përpara se proxy-i i parazgjedhur të inicializohet.
Këto janë rregullat e dokumentuara të .NET. Një rezultat curl me të njëjtin varg nuk provon se një klient tjetër zgjodhi të njëjtën rrugë, dhe vendimi për anashkalim ende kërkon arritshmëri të drejtpërdrejtë të rrjetit.