【发布时间】:2020-06-30 14:36:24
【问题描述】:
我们正在尝试让代理功能在 Windows 上的 .NET Core 3.0(或 3.1)应用程序中工作。我们发现 HTTPS_PROXY 和 HTTP_PROXY 变量被识别并按预期处理,但默认代理似乎不支持 NO_PROXY 变量。这是示例代码:
HttpClient client = new HttpClient();
IWebProxy myProxy = HttpClient.DefaultProxy;
Uri target = new Uri(args[0]);
Uri proxy = myProxy.GetProxy(target);
Console.WriteLine($"Target proxy for {target} is {proxy} {myProxy.IsBypassed(target)}");
如果我这样从 PowerShell 运行它:
if (-not $env:path.Contains('c:\data\src')) {
$env:path = "$env:Path;C:\data\src\Local\DefaultProxy\bin\Debug\netcoreapp3.0"
}
$env:HTTPS_PROXY = 'http://10.11.10.10'
$env:NO_PROXY = '*'
DefaultProxy https://www.contoso.com
我明白了:
https://www.contoso.com/ 的目标代理是 http://10.11.10.10/ False
我希望得到空白和真实。
我应该进行哪些更改才能使用 NO_PROXY 从默认代理中排除域?
【问题讨论】:
-
是的。那篇文章展示了 .Net Core 3.0 支持这些变量的意图。我正在尝试在解释文档时让它工作。
标签: c# dotnet-httpclient http-proxy .net-core-3.0