Kontrollera .NET:s NO_PROXY-regler med HttpClient.DefaultProxy.IsBypassed
Ange både den nakna domänen och formen med inledande punkt när HttpClient ska kringgå proxyn för båda, och undersök sedan IsBypassed.
Enligt HttpClients dokumenterade miljöproxyprincip matchar example.internal och .example.internal olika. Det nakna namnet väljer värdvärden; formen med inledande punkt väljer dess underdomäner.
Om båda ska gå direkt, ta med båda i startmiljön:
export no_proxy='example.internal,.example.internal'
Slå ihop dessa med den avsedda befintliga undantagslistan. På system där variabelnamn skiljer mellan stora och små bokstäver kontrollerar .NET först proxyvariabler med små bokstäver och därefter dem med stora, så en föråldrad no_proxy kan få företräde framför NO_PROXY.
Inuti programmet kan standardväljaren undersökas utan att HTTP-begäran skickas till målet:
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)}");
}
Utdraget använder System och System.Net.Http. Om programmet uttryckligen angett en annan IWebProxy, undersök i stället den faktiska handler-proxyn. Ange den avsedda miljön innan standardproxyn initieras.
Detta är .NET:s dokumenterade regler. Ett curl-resultat med samma sträng bevisar inte att en annan klient valde samma väg, och ett undantagsbeslut kräver fortfarande direkt nätverksåtkomst.