Comprobar as regras NO_PROXY de .NET con HttpClient.DefaultProxy.IsBypassed
Inclúa tanto o dominio simple como a forma con punto inicial cando HttpClient deba omitir o proxy para ambos, e despois inspeccione IsBypassed.
Segundo a política de proxy de contorno documentada de HttpClient, example.internal e .example.internal coinciden de xeito distinto. O nome simple selecciona o host pai; a forma con punto inicial selecciona os seus subdominios.
Se ambos deben ir directos, inclúa os dous no contorno de inicio:
export no_proxy='example.internal,.example.internal'
Combínaos coa lista de omisión existente que pretenda usar. Nos sistemas onde os nomes de variables distinguen maiúsculas e minúsculas, .NET comproba primeiro os nomes de proxy en minúsculas e despois os de maiúsculas, así que un no_proxy antigo pode ter prioridade sobre NO_PROXY.
Dentro da aplicación, o selector predeterminado pódese inspeccionar sen enviar a solicitude HTTP ao destino:
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)}");
}
O fragmento usa System e System.Net.Http. Se a aplicación forneceu explicitamente outro IWebProxy, inspeccione no seu lugar o proxy real do controlador. Estableza o contorno desexado antes de que se inicialice o proxy predeterminado.
Estas son as regras documentadas de .NET. Un resultado de curl coa mesma cadea non demostra que outro cliente escollese a mesma ruta, e unha decisión de omisión segue a requirir conectividade de rede directa.