得到Http Get中的每一个回复

时间:2013-02-18 10:35:29

标签: c# .net http webclient

我正在使用WebClient来获取和发布请求。当我向这样的GET数据发送http请求时:

WebClient client = new WebClient();  
client.DownloadStringAsync(new Uri(requestUri), "GET"); 

我可以完全接收1分钟的数据。我可以在20秒内收到一些数据,在30秒内和1分钟后完成其他一些数据。每当收到数据时我都想知道。我是否在Web客户端中有任何事件来获取我收到的数据字节..任何人都可以帮我找到解决方案。

1 个答案:

答案 0 :(得分:0)

只要其中一个异步方法接收数据,就会引发WebClient.DownloadProgressChanged事件。但是,没有办法确切地确定读取了什么数据,因此听起来不会解决您的问题。

如果您需要完全控制请求,则必须放弃WebClient并直接使用较低级别的WebRequest课程。具体来说,您希望发送WebRequest以获得WebResponse并在其上调用GetResponseStream;返回的流公开了异步功能,可以让您做任何您需要的事情。缺点当然是您必须手动编排所有内容,这将远远超过两行代码。

有一个示例如何在WebRequest.BeginGetResponse的MSDN文档中执行此操作。