在我看来,大多数可以用HttpWebRequest/Response
完成的任务也可以用WebClient
类完成。我在某处读到WebClient
是WebRequest/Response
的高级包装器。
到目前为止,我还看不到任何不能用WebClient
完成的用HttpWebRequest/Response
完成的事情,也看不到HttpWebRequest/Response会给您提供更多的“细粒度”控制。
什么时候应该使用WebClient,什么时候使用HttpWebRequest/Response
?(显然,HttpWebRequest/Response
是特定于HTTP的。)
如果HttpWebRequest/Response
比WebClient
级别更低,我可以使用HttpWebRequest/Response
完成哪些使用WebClient
无法完成的任务
发布于 2009-11-08 05:01:55
使用HttpWebRequest
可以让您更好地控制请求。您可以设置cookies、标头、协议等。在响应中,您还可以检索cookie和标头
发布于 2009-11-09 00:14:14
HttpWebRequest
公开了更多的东西,允许你进行细粒度的协议控制,例如:你是否想要使用Keep-Alive,使用哪个连接池,是否缓冲写操作,等等。
WebClient
不会公开所有这些内容(尽管您可以从WebClient
继承子类并获取对底层请求对象的访问权限)。
当你只想做一个操作(例如: POST/GET/Form upload)而不愿意创建和管理HttpWebRequest
、RequestStream
、HttpWebResponse
和响应流时,WebClient
非常有用。
发布于 2009-11-08 05:02:46
来自Tim Heuer的博客- http://timheuer.com/blog/archive/2008/03/14/calling-web-services-with-silverlight-2.aspx
相反,在Silverlight中,你会想要使用WebClient或HttpWebRequest。有什么关系呢?这是timheuer版本。WebClient是一种更简单的实现,可以非常轻松地执行GET请求并获得响应流。当你需要对请求进行更细粒度的控制,需要发送头或其他定制时,HttpWebRequest是很棒的。
https://stackoverflow.com/questions/1694388
复制相似问题