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

san*_*p43 5 c#

问题:我需要从不同的主机下载数百张图片.每个主机有20到数百个图像.

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

或者更好的是保持打开套接字连接池并使用较低级别的调用发出http请求?

打开/关闭tcp连接是否昂贵(我假设这是WebClient所做的),因此使用池声音效率更高?

Jon*_*eet 6

我相信使用的底层基础设施WebClient已经集中了HTTP连接,所以没有必要这样做.你可能想要使用Wireshark这样的东西检查一些示例网址.

从根本上说,我采用与其他编程任务相同的方法 - 以最简单的方式编写代码,然后检查它是否能够满足您的需求.如果确实如此,那就完成了.如果没有,使用合适的工具(网络分析仪等)制定出为什么它不执行不够好,并且只使用它是否解决了这个问题更复杂的代码.

我的经验是,WebClient如果它不是你需要的那样就好了 - 但是它并没有给你那么多细粒度的控制WebRequest.如果您不需要该控制,请继续WebClient.