4
我試着去理解web請求代理(HttpWebRequest的或Web客戶端) 在控制面板 - > Internet選項 - > Connecitons-> LAN設置 你會看到3個選項:如何獲得代理
- 自動檢測設置
- 使用自動配置腳本
- 使用代理服務器爲LAN
我想,以確保無論哪個設置,我的Web請求拿起與瀏覽器相同的代理。
我正在使用下面的代碼來實現這一點;然而,當檢查1.時,我在瀏覽器和我的代碼中嘗試相同的URL,它看起來我的代碼慢得多。我想我在代碼中獲取代理的方式可能效率不高或不合適。
有什麼我可以改變我的代碼來反映瀏覽器的速度?
var client = (HttpWebRequest)WebRequest.Create(uriStr);
client.Headers["something"] = something;
client.Timeout = ConnectionTimeOut; //1 min
var proxyURI = WebRequest.GetSystemWebProxy().GetProxy(uri);
var proxy = new WebProxy(proxyURI, true)
{
Credentials = CredentialCache.DefaultNetworkCredentials
};
//if there is no proxy, proxy will return the same uri
//do we need check if client.Proxy is null or not,
if (proxyURI != null && !string.IsNullOrEmpty(proxyURI.AbsoluteUri) && !proxy.Address.Equals(uri))
{
client.Proxy = proxy;
}
在這兩種情況下使用WireShark(或Fiddler)跟蹤HTTP數據包,並比較跟蹤。 – kol 2011-12-15 16:00:26