我尝试获取 Web 请求的代理(HttpWebRequest 或 webclient) 在控制面板-> Internet 选项-> 连接-> 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;
}