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