gpt4 book ai didi

.net - System.Net.WebClient 与代理身份验证 407 错误

转载 作者:行者123 更新时间:2023-12-04 00:33:53 26 4
gpt4 key购买 nike

我试图弄清楚如何稳健地处理代理身份验证错误(HTTP
407 状态代码)在使用 System.Net.WebClient 类时。

在现场,我们看到很多用户收到了 407 代理认证
WebException,但我不确定什么是好的默认策略。在.Net
2.0/3.5,代理认证设置应该继承自
Internet Explorer 系统设置。 Firefox、Opera 和 Chrome 使用这些
相同的设置。

这是我们使用的基本代码:

using System.Net;

string url = "http://www.mysite.com";
WebClient webClient = new WebClient();
byte[] data = webClient.DownloadFile(url);

当此代码失败时,我们打开用户的浏览器并将其发送给帮助
页。从我们的网络日志中,我们知道这些客户可以成功连接
他们的浏览器。也许他们正在手动输入他们的代理用户名和
在他们进入我们的帮助页面之前输入密码?我们不知道。

似乎我们可以使用 WebClient.UseDefaultCredentials,但是这个
如果 WebClient 无论如何都在使用系统设置,则似乎是多余的。

任何帮助表示赞赏。

最佳答案

如果代理身份验证使用 BASIC 或 DIGEST,Internet Explorer 不会持久缓存/重用代理身份验证凭据。对于协商/NTLM,将提供默认凭据。

因此,即使 .NET 继承自 IE 设置,您也不会获得对 Basic/Digest 代理身份验证的任何“免费”支持,除非您碰巧在 IE 中运行;您需要提示用户或提供配置屏幕。

Fiddler (www.fiddler2.com) 在“规则”菜单上有“请求代理身份验证”选项,您可以使用它来模拟此场景进行测试。

关于.net - System.Net.WebClient 与代理身份验证 407 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1202708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com