我有一个相对简单的功能,它使用 WebClient 类对 Web 服务器执行 HTTPS POST。此代码运行可靠,但在使用 EarthLink 或 AT&T 下载加速器功能时遇到问题。
下载加速器通过将拨号连接的代理设置更改为仅为 HTTP 协议指定 localhost:8080 来工作。在这种配置下,想必 HTTPS 协议应该不受影响。事实上,当使用 Internet Explorer 导航到https://www.wellsfargo.com时,并没有错误。
但是,在使用 .NET 2.0(或 3.5)时,WebClient 类无法在此配置中从https://www.wellsfargo.com执行简单的 HTTPS GET。
作为一个简单的测试,我执行以下操作:
指定高级 LAN 代理配置,其中:
HTTP地址:重击:8080
安全地址:securewhacked:8081
在 C# 中,我调用以下函数:
IWebProxy defaultWebProxy = WebRequest.DefaultWebProxy;
Uri proxyUri = defaultWebProxy.GetProxy("https://www.wellsfargo.com");
我希望 proxyUri 应该是“securewhacked:8081”。
相反,proxyUri 是“重击:8080”。
这似乎是.NET“自动”代理使用中的一个错误。结果是打开下载加速器时我们的软件失败了。
有谁知道这里发生了什么?
我知道客户禁用加速器相对容易,但我希望我们的软件开箱即用,无需用户禁用加速器。
任何建议表示赞赏。