Según la política de proxy de entorno documentada de HttpClient, example.internal y .example.internal coinciden de forma distinta. El nombre simple selecciona el host padre; la forma con punto inicial selecciona sus subdominios.

Si ambos deben ir directos, incluya los dos en el entorno de inicio:

export no_proxy='example.internal,.example.internal'

Combínelos con la lista de omisión existente que pretenda usar. En sistemas donde los nombres de variables distinguen mayúsculas y minúsculas, .NET comprueba primero los nombres de proxy en minúsculas y luego los de mayúsculas, así que un no_proxy antiguo puede tener prioridad sobre NO_PROXY.

Dentro de la aplicación, el selector predeterminado se puede inspeccionar sin enviar la solicitud HTTP al 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)}");
}

El fragmento usa System y System.Net.Http. Si la aplicación proporcionó explícitamente otro IWebProxy, inspeccione en su lugar el proxy real del controlador. Establezca el entorno deseado antes de que se inicialice el proxy predeterminado.

Estas son las reglas documentadas de .NET. Un resultado de curl con la misma cadena no demuestra que otro cliente eligiera la misma ruta, y una decisión de omisión sigue requiriendo conectividad de red directa.

Artículos relacionados