gpt4 book ai didi

c# - 如何获得代理

转载 作者:行者123 更新时间:2023-11-30 12:33:46 26 4
gpt4 key购买 nike

我尝试为 Web 请求获取代理(HttpWebRequest 或 webclient)在控制面板->Internet 选项->连接->LAN 设置你会看到 3 个选项:

  1. 自动检测设置
  2. 使用自动配置脚本
  3. 为您的 LAN 使用代理服务器

我想确保无论使用哪种设置,我的 Web 请求都会选择与浏览器相同的代理。

我正在使用下面的代码来实现这一点;然而,当 1. 被选中时,我在浏览器和我的代码中尝试了相同的 URL,看起来我的代码要慢得多。我想我在代码中获取代理的方式可能效率不高或不合适。

我可以更改我的代码以反射(reflect)浏览器的速度吗?

    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;
}

最佳答案

你的方法很好。

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

在获取代理/凭据后,您是否尝试过在您的应用程序中进行后续请求?

关于c# - 如何获得代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8522767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com