WebClient与代理设置 - 或下载加速器的乐趣

时间:2009-01-19 06:45:07

标签: .net proxy webclient

我有一个相对简单的功能,它使用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地址: whacked:8080

安全地址: securewhacked:8081

在,C#中我调用以下函数:

IWebProxy defaultWebProxy = WebRequest.DefaultWebProxy;
Uri proxyUri = defaultWebProxy.GetProxy("https://www.wellsfargo.com");

我希望proxyUri应该是“securewhacked:8081”。

相反,proxyUri是“whacked:8080”。

这似乎是.NET“自动”代理使用中的一个错误。结果 是打开下载加速器时我们的软件失败。

有谁知道这里发生了什么?

我知道客户禁用加速器相对容易, 但我宁愿我们的软件开箱即用而不需要 用户禁用加速器。

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

加速器是否设置在用户的(IE)代理设置,机器(WinHTTP)代理设置或两者上?如果是IE,您可能想尝试使用proxycfg -u将IE设置导入WinHTTP(因为我相信这是WebClient(和.NET一般)使用的。)