De NO_PROXY-regels van .NET controleren met HttpClient.DefaultProxy.IsBypassed
Vermeld zowel het kale domein als de vorm met voorloopstip wanneer HttpClient voor beide de proxy moet omzeilen, en inspecteer daarna IsBypassed.
Volgens het gedocumenteerde omgevingsproxybeleid van HttpClient passen example.internal en .example.internal verschillend. De kale naam kiest de bovenliggende host; de vorm met voorloopstip kiest de subdomeinen daarvan.
Als beide rechtstreeks moeten gaan, neem ze dan beide op in de opstartomgeving:
export no_proxy='example.internal,.example.internal'
Voeg deze samen met de bedoelde bestaande uitzonderingenlijst. Op systemen waar variabelenamen hoofdlettergevoelig zijn, controleert .NET eerst de proxyomgevingsnamen in kleine letters en daarna die in hoofdletters, zodat een verouderde no_proxy voorrang kan krijgen boven NO_PROXY.
Binnen de toepassing kan de standaardselectie worden bekeken zonder het HTTP-verzoek naar de bestemming te versturen:
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)}");
}
Het fragment gebruikt System en System.Net.Http. Als de toepassing expliciet een andere IWebProxy heeft opgegeven, inspecteer dan de werkelijke proxy van de handler. Stel de bedoelde omgeving in voordat de standaardproxy wordt geïnitialiseerd.
Dit zijn de gedocumenteerde regels van .NET. Een curl-resultaat met dezelfde tekenreeks bewijst niet dat een andere client dezelfde route koos, en een uitzonderingsbeslissing vereist nog steeds directe netwerkbereikbaarheid.