加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何获取代理

发布时间:2020-12-15 17:22:35 所属栏目:百科 来源:网络整理
导读:我尝试获取Web请求的代理(HttpWebRequest或webclient) 在控制面板中 – 互联网选项 – 连接 – 局域网设置 你会看到3个选项: 自动检测设置 使用自动配置脚本 为LAN使用代理服务器 我想确保无论采用哪种设置,我的网络请求都会选择与浏览器相同的代理. 我正在
我尝试获取Web请求的代理(HttpWebRequest或webclient)
在控制面板中 – >互联网选项 – >连接 – >局域网设置
你会看到3个选项:

>自动检测设置
>使用自动配置脚本
>为LAN使用代理服务器

我想确保无论采用哪种设置,我的网络请求都会选择与浏览器相同的代理.

我正在使用下面的代码来实现这一目标;但是,当检查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;
    }

解决方法

你的方法很好.

可能导致速度差异的原因是浏览器可能已缓存您请求的页面或缓存代理/代理凭据,并且不需要执行任何网络新提取,因为您在代码中执行.

获取代理/凭证后,您是否在申请中尝试了后续请求?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读