Overenie pravidiel NO_PROXY v .NET pomocou HttpClient.DefaultProxy.IsBypassed
Uveďte holú doménu aj formu s úvodnou bodkou, keď má HttpClient obísť proxy pre obe, a potom skontrolujte IsBypassed.
Podľa dokumentovanej politiky proxy z prostredia v HttpClient sa example.internal a .example.internal zhodujú odlišne. Holé meno vyberá nadradeného hostiteľa; forma s úvodnou bodkou vyberá jeho subdomény.
Ak majú obe ísť priamo, zahrňte obe do prostredia pri spustení:
export no_proxy='example.internal,.example.internal'
Zlúčte ich s plánovaným existujúcim zoznamom výnimiek. V systémoch, kde mená premenných rozlišujú veľkosť písmen, .NET najprv kontroluje proxy premenné malými písmenami a až potom veľkými, takže zastarané no_proxy môže mať prednosť pred NO_PROXY.
Vnútri aplikácie možno predvolený selektor skontrolovať bez odoslania cieľovej požiadavky 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)}");
}
Úryvok používa System a System.Net.Http. Ak aplikácia výslovne poskytla iný IWebProxy, skontrolujte namiesto toho skutočnú proxy obslužnej rutiny. Nastavte zamýšľané prostredie pred inicializáciou predvolenej proxy.
Toto sú dokumentované pravidlá .NET. Výsledok curl s rovnakým reťazcom nedokazuje, že iný klient zvolil rovnakú trasu, a rozhodnutie o obídení stále vyžaduje priamu sieťovú dostupnosť.