使用 C# 下载多个网页的最快方法

发布于 2024-12-05 11:10:55 字数 278 浏览 0 评论 0原文

这是我目前拥有的(基本)示例:

foreach (var uri in uris)
{
    using (var client = new WebClient())
    {
        client.Proxy = null;
        client.DownloadStringCompleted += DownloadComplete;
        client.DownloadStringAsync(uri);
    }
}

有更快的方法吗?

This is a (basic) example of what I currently have:

foreach (var uri in uris)
{
    using (var client = new WebClient())
    {
        client.Proxy = null;
        client.DownloadStringCompleted += DownloadComplete;
        client.DownloadStringAsync(uri);
    }
}

Is there a faster way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟花易冷人易散 2024-12-12 11:10:55

重要的是并行下载,由于异步下载,您已经在这样做了。

代码的下载速度完全取决于实际的网络传输速度,因此尽其所能。

The important thing is to make the downloads in parallel, which you are already doing thanks to the Async download.

The download speed of your code is entirely dependent of the actual network transfer speed, so it is as good as it gets.

挽袖吟 2024-12-12 11:10:55

我相信,如果您将 Accept-Encoding 标头设置为 gzip,deflate,如果服务器支持 gzip(现代 Web 服务器应该支持),您可以使其速度更快。

基本思想是在下载之前要求服务器压缩内容,通常对于普通网页,您可能会减少 50% 的大小,因此可以节省 50% 的时间。

查看 这篇关于 C#feeds 的文章

I believe you can make it a lot faster if you set Accept-Encoding header to gzip,deflate, if the server support gzip (modern web server should support).

The basic idea is to ask the server zip the content before downloading, normally for a common web page, you may get 50% less in size and hence you can save 50% time.

Look at this article on C#feeds.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文