如何使用System.Net.HttpClient正确指定代理

时间:2018-05-01 04:37:28

标签: asp.net web-config dotnet-httpclient .net-4.7.1

如果在web.config中指定,是否可以回答HttpClient是否应该使用默认代理?

<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
        <proxy proxyaddress="http://my.proxy" bypassonlocal="False" />
    </defaultProxy>
</system.net>

每当我使用HttpClient时,我发现自己必须实现静态HttpClientHandler

private static HttpClientHandler statichandler = new HttpClientHandler()
{
    Proxy = new WebProxy(ConfigurationManager.AppSettings["HttpClientProxy"].ToString()),
            UseProxy = true,
};

有没有办法强制httpclient获取system.net默认配置部分/我缺少什么?

1 个答案:

答案 0 :(得分:0)

实际的解决方案是使用HttpClientHandler实现Httpclient,将UseProxy显式设置为true。

private static HttpClientHandler statichandler = new HttpClientHandler()
{
   UseProxy = true
};

然后选择了以下内容:

<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
        <proxy proxyaddress="http://my.proxy" bypassonlocal="False" />
    </defaultProxy>
</system.net>