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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpClient的。在自动发现的代理上进行身份验证的默认凭据相关的知识,希望对你有一定的参考价值。

控制怪胎免责声明:是的,有很多关于HttpClient和代理的问题,但他们至少使用其中一个

  • 明确(非默认)代理凭证
  • 显式(无WPAD)代理配置
  • 弃用Api,e。 G。 WebProxy.GetDefaultProxy,WebRequest等。

根据dotnet developers

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

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

_client = new HttpClient()

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

附:可能存在另一个问题,并且在特殊帐户下运行作为服务(特别是在Linux上),此代码没有要使用的IE设置。所以我们需要重新实现WPAD。

答案

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

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

以上是关于HttpClient的。在自动发现的代理上进行身份验证的默认凭据的主要内容,如果未能解决你的问题,请参考以下文章

使用 HttpClient 类时如何对代理进行身份验证?

具有身份验证的 Apache HttpClient Socks5 代理

Apache HttpClient 4.3.1 中使用 HTTP 隧道/HTTPS 连接的抢先式代理身份验证

csharp 使用基本身份验证和代理的简单C#.NET 4.5 HTTPClient请求

C# SMTP 无法在 Outlook.com 端口 587 上进行身份验证。“服务器响应为:5.7.1 客户端未通过身份验证”

静默刷新在 OPTIONS 预检上进行身份验证,但不在 GET 到 UserInfo 端点上进行身份验证