5

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

解决方法:使用一个new WebClient每次需要通过WebClient的方法下载图片的DownloadData方法。

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

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

4

2 回答 2

6

我相信使用的底层基础设施WebClient已经汇集了 HTTP 连接,所以没有必要这样做。当然,您可能希望使用Wireshark之类的工具以及一些示例 URL 进行检查。

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

我的经验是,WebClient如果它不是您所需要的,那很好 - 但它并没有像WebRequest. 如果您不需要该控件,请使用WebClient.

于 2012-09-26T21:10:06.553 回答
0

我使用HttpWebRequestHttpWebResponse刮掉我想要的任何东西。当然,除非有满足需求的服务,但即使有时存在限制(业务限制),我经常更喜欢从纯 http 请求中挖掘 html。有时只是让感觉更像开发人员,你知道...

于 2012-09-26T21:12:39.307 回答