c# - WebClient是下载http数据的最佳方式吗?

标签 c#

问题:我需要从不同的主机下载数百张图片。每个主机都有 2000 张图片。

解决方案:每次需要通过 WebClient 的 DownloadData 方法下载图像时,使用一个 new WebClient

或者保留一个打开的套接字连接池并使用较低级别的调用发出 http 请求会更好吗?

打开/关闭 tcp 连接是否很昂贵(我假设 WebClient 就是这样做的),所以使用池听起来更有效?

最佳答案

我相信 WebClient 使用的底层基础设施已经将 HTTP 连接汇集在一起​​,因此没有必要这样做。您可能需要使用类似 Wireshark 的内容进行检查当然,还有一些示例 URL。

从根本上说,我会采用与处理其他编程任务相同的方法 - 以最简单可行的方式编写代码,然后检查其性能是否足以满足您的需求。如果是这样,你就完成了。如果没有,请使用适当的工具(网络分析器等)来找出为什么它的性能不够好,并且只有在解决问题时才使用更复杂的代码。

我的经验是,如果 WebClient 不是您所需要的,它也可以,但它无法为您提供与 WebRequest 一样多的细粒度控制。如果您不需要该控件,请使用 WebClient

关于c# - WebClient是下载http数据的最佳方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12610417/

相关文章:

c# - 总数按年份刷新后的真实行数

c# - Unity 开发人员如何限制从 Object 派生的泛型类型参数?

c# - LINQ查询数据表,加入多个选择

c# - AutoMapper继承和Linq

c# - 某些 linq2sql 生成的 T-SQL 出现问题

c# 使用目录类搜索

c# - 使用 Linq 从 XML 填充类

c# - 可移植类库和 WebRequest.ContentLength

c# - 创建一个采用替代参数变量类型的方法

c# - 可以将所有需要的文件打包到 EXE 中吗?