HttpClient。用于在自动发现的代理上进行身份验证的默认凭据

时间:2018-12-26 12:23:28

标签: c# .net proxy credentials dotnet-httpclient

控制狂免责声明:是的,关于HttpClient和代理存在很多问题,但它们至少使用其中之一

  • 显式(非默认)代理凭据
  • 显式(非WPAD)代理配置
  • 已弃用的Api,例如G。 WebProxy.GetDefaultProxy,WebRequest等。

根据dotnet developers

  

如果HttpClientHandler.Proxy的默认值为null,则HttpClientHandler将使用IE代理设置

因此,使用HttpClient设置正确的公司代理,我们不需要任何其他操作,

_client = new HttpClient()

并且没有官方的方法来选择代理。 但是,如何通过默认的AD凭据对自动发现的代理进行身份验证呢? 我刚收到“需要(407)代理身份验证。”

P.S。可能还有另一个问题,并且该代码在特殊帐户下(尤其是在Linux上)作为服务运行,没有使用IE设置。因此,我们需要重新实现WPAD。

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码通过HttpClient将凭据传递到默认系统代理:

var handler = new HttpClientHandler();
handler.DefaultProxyCredentials = CredentialCache.DefaultCredentials;
var client = new HttpClient(handler);