Preverjanje pravil NO_PROXY v .NET s HttpClient.DefaultProxy.IsBypassed
Navedite golo domeno in obliko z vodilno piko, ko mora HttpClient obiti proxy za oba, nato preglejte IsBypassed.
Po dokumentirani politiki okoljske proxy v HttpClient se example.internal in .example.internal ujemata različno. Golo ime izbere nadrejenega gostitelja; oblika z vodilno piko izbere njegove poddomene.
Če morata oba iti neposredno, vključite oba v zagonsko okolje:
export no_proxy='example.internal,.example.internal'
Združite ju z načrtovanim obstoječim seznamom izjem. V sistemih, kjer imena spremenljivk razlikujejo velike in male črke, .NET najprej preveri proxy spremenljivke z malimi črkami in šele nato z velikimi, zato ima lahko zastarela no_proxy prednost pred NO_PROXY.
Znotraj aplikacije je privzeti izbirnik mogoče pregledati brez pošiljanja zahteve HTTP na cilj:
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)}");
}
Odsek uporablja System in System.Net.Http. Če je aplikacija izrecno navedla drug IWebProxy, preglejte namesto tega dejansko proxy upravitelja. Nastavite želeno okolje, preden se privzeta proxy inicializira.
To so dokumentirana pravila .NET. Rezultat curl z isto vrstico ne dokazuje, da je druga odjemalska aplikacija izbrala isto pot, in odločitev o obhodu še vedno zahteva neposredno omrežno dosegljivost.