2009-01-19 35 views
4

我有一個相對簡單的功能,使用WebClient類執行 HTTPS POST到Web服務器。此代碼可靠運行,但在使用EarthLink或AT & T下載加速器功能時遇到 問題。WebClient與代理設置 - 或下載加速器的樂趣

下載加速器通過將撥號連接的代理 設置更改爲僅爲HTTP協議指定localhost:8080。在這個 配置中,推測HTTPS協議應該不受影響。實際上, 使用Internet Explorer導航到https://www.wellsfargo.com時, 沒有錯誤。

但是,在使用.NET 2.0(或3.5)時,WebClient類無法在此配置中從https://www.wellsfargo.com執行 一個簡單的HTTPS GET。

作爲一個簡單的測試,我執行以下操作:

指定一個先進的局域網代理配置,其中:

HTTP地址:重擊:8080

安全地址:securewhacked:8081

在C#中,我調用以下函數:

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

我認爲proxyUri應該是「securewhacked:8081」。

相反,proxyUri是「whacked:8080」。

這看起來像.NET「自動」代理使用情況中的一個錯誤。結果 是我們的軟件在打開下載加速器時失敗。

有人知道這裏發生了什麼嗎?

我知道客戶禁用加速器相對容易, 但我寧願我們的軟件開箱即用,而不要求 用戶禁用加速器。

任何建議表示讚賞。

回答

0

在用戶(IE)代理設置,機器(WinHTTP)代理設置或兩者上設置加速器?如果IE瀏覽器,你可能想嘗試使用proxycfg -u將IE設置導入WinHTTP(因爲我相信這是WebClient(和.NET通常)使用的)。