我有以下代码在没有配置代理的情况下在Mac上运行时工作正常。
static void Main(string[] args)
{
HttpClientHandler handler = new HttpClientHandler();
var client = new HttpClient(handler);
string baseUrl = "http://www.bbc.com";
try
{
HttpResponseMessage res = client.GetAsync(baseUrl).Result;
if (res.IsSuccessStatusCode)
{
Console.WriteLine("Success");
}
else
{
Console.WriteLine("Failed");
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
如果我为此Mac配置代理,请求不会通过代理进行路由。如果我在Safari浏览器上输入URL,它将按预期路由到代理。有没有错误配置的设置?或者DotNet Core不支持这种情况?这导致我们的应用程序在代理后面的公司网络上失败。任何解决方法也表示赞赏。
答案 0 :(得分:3)
在github上重新评论wfurt的答案。
"我们在封面下使用的curl库不知道如何读取系统设置。 未来的工作将在Angular - Form Validation"
中进行跟踪解决方法:
export http_proxy=http://proxy.server.com:3128
export https_proxy=http://proxy.server.com:3128
如果代理服务器需要用户名和密码,请包含凭据:https_proxy=http://username:password@proxy.example.com
如果代理服务器使用80以外的端口,请包含端口号:https_proxy=http://username:password@proxy.example.com:8080
如果代理服务器是SOCKS5代理,请在URL中指定SOCKS5协议:https_proxy=socks5://socks_proxy.example.com
参考:#26593