如何获得代理
本文关键字:代理 何获得 | 更新日期: 2023-09-27 18:18:02
我尝试获得代理web请求(HttpWebRequest或webclient)在控制面板->Internet选项->连接->局域网设置您将看到3个选项:
- 自动检测设置
- 使用自动配置脚本
- 为LAN使用代理服务器
我想确保无论哪种设置,我的web请求拾取与浏览器相同的代理。
我使用下面的代码来实现这一点;然而,当我。检查,我在浏览器和我的代码中尝试相同的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;
}
你的方法很好。
可能导致速度差异的原因是浏览器可能已经缓存了您请求的页面或缓存了代理/代理凭证,并且不需要像您在代码中执行的那样执行任何新的抓取。
在获得代理/凭据后,您是否尝试了应用程序中的后续请求?