c# - 没有代理的低下载速度

标签 c# proxy fiddler

我编写了一些调用方法 webClient.DownloadString 的代码。当我运行我的程序分析器时,显示此方法占用了程序 98% 的时间(不是处理器时间),并且下载速度太慢(大约是最大下载速度的 10%)。

当我使用 Fiddler 运行我的程序时,下载速度增加到最大下载速度的 75% - 90%。

我的错误在哪里?以及如何提高我的应用程序的下载速度?

这是我的代码。

        WebClient wc = new WebClient();
        wc.Encoding = Encoding.GetEncoding("1251");
        wc.Proxy = null;
        HtmlDocument html = new HtmlDocument();
        html.LoadHtml(wc.DownloadString("http://some-site.com/" + htmlUrl));
        var c1 = html.GetElementbyId("content");
        foreach (var c2 in c1.ChildNodes.Where(c => c.Name == "div"))
        {
            foreach (var c3 in c2.ChildNodes.Where(c => c.Name == "a"))
            {
                var leftIndex = c3.InnerText.IndexOf('(');
                var rightIndex = c3.InnerText.LastIndexOf(')');
                var id = c3.InnerText.Substring(0, leftIndex - 1).Replace(" ", "");
                var name = c3.InnerText.Substring(leftIndex + 1, rightIndex - leftIndex - 1);

                SaveInDB(int.Parse(id), name);
            }
        }

我在多个线程中运行它以提高下载速度。

我尝试使用其他变体 wc.Proxy = nullwc.Proxy = GlobalProxySelection.GetEmptyWebProxy()WebProxy.GetDefaultProxy()wc.Proxy = new WebProxy()。结果,我的下载速度总是很慢。

“控制面板”/“Internet 选项”-> 连接选项卡-> LAN 设置 中关闭“自动检测设置” 也没有提高下载速度.

最佳答案

IWebProxy proxy = GlobalProxySelection.GetEmptyWebProxy();
wc.Proxy = proxy;

关于c# - 没有代理的低下载速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8717987/

相关文章:

c# - double.Parse 抛出 System.FormatException

javascript - 将 'no-cors' 模式与获取 API 一起使用时,请求 header 未按预期设置

c# - 如何从 Amazon Simple DB 检索超过 100 条记录

c# - MySql 使用旧密码进行身份验证时出错

c# - 如何在没有 ModuleInfo 标签的 app.config 的情况下使用 C# 连接到带有 Emc.Documentum.FS.Runtime 的 Documentum?

c# - 测试代理以查看它是否需要身份验证

xcode - 在代理后面使用 XCode 提交应用程序

python - sqlalchemy.orm.scoping.scoped_session 代理能力是如何实现的?

ssl - 如何配置 Fiddler 以通过 SSL 将流量重定向到后端 tomcat 应用程序

c# - 在 C# 应用程序 + ip :port proxy 中使用 fiddler