我有一个使用WebClient类执行的相对简单的功能
到Web服务器的HTTPS POST。该代码工作可靠,但遇到
使用EarthLink或AT&T下载加速器功能时出现问题。
下载加速器通过更改拨号连接的代理来工作
设置以仅将localhost:8080指定为HTTP协议。在这个
配置,大概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“自动”代理使用中的错误。结果
是指当打开下载加速器时我们的软件失败。
有人知道这是怎么回事吗?
我知道客户禁用加速器相对容易,
但是我宁愿我们的软件开箱即用而无需
用户禁用加速器。
任何建议表示赞赏。
最佳答案
是否在用户(IE)代理设置,计算机(WinHTTP)代理设置或两者上都设置了加速器?如果是IE,则可能要尝试使用proxycfg -u
将IE设置导入WinHTTP(因为我相信WebClient
(通常是.NET使用)。