​

webclient 和HttpWebRequest采集的区别

都是一样的, WebClient调用HttpWebRequest进行下载


因为WebClient就是通过创建WebRequest(它会自动根据url来识别是FTP还是Http)来操作的。可以说,与其你费劲去创建HttpWebRequest,再创建WebResponse,最后才读取数据,当然不如直接使用WebClient方便啦!但是这只是方便程度不同,对于你的这个问题没有差别。


WebClient用于单向上传(POST)或者下载(GET),而如果你需要双向操作(POST然后再下载)则应该使用HttpWebRequest。

 ​

WebRequest类 

命名空间: System.Net 


发出对统一资源标识符 (URI) 的请求。这是一个抽象(在 Visual Basic 中为 MustInherit)类。 

WebRequest 是 .NET Framework 的用于访问 Internet 数据的请求/响应模型的抽象(在 Visual Basic 中为 MustInherit)基类。使用该请求/响应模型的应用程序可以用协议不可知的方式从 Internet 请求数据。在这种方式下,应用程序处理 WebRequest 类的实例,而协议特定的子类则执行请求的具体细节。 


请求从应用程序发送到某个特定的 URI,如服务器上的 Web 页。URI 从一个为应用程序注册的 WebRequest 子代列表中确定要创建的适当子类。注册 WebRequest 子代通常是为了处理某个特定的协议(如 HTTP 或 FTP),但是也可以注册它以处理对特定服务器或服务器上的路径的请求。 


WebClient 类: 

提供向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法。不能继承此类。 

WebClient 类提供向 URI 标识的任何本地、Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法。 


WebClient 类使用 WebRequest 类提供对 Internet 资源的访问。WebClient 实例可以通过任何已向 WebRequest.RegisterPrefix 方法注册的 WebRequest 子代访问数据。