2013-02-18 25 views
0

我正在使用WebClient获取和发布请求。当我发送HTTP请求GET数据是这样的:在Http中获取每个响应获取

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

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

回答

0

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

如果您需要完全控制请求,您将不得不放弃WebClient,并直接与较低级别的WebRequest类一起工作。具体而言,您要发送WebRequest以获得WebResponse并在其上呼叫GetResponseStream;返回的流暴露异步功能,可以让你做任何你需要的。不利的一面是,你将不得不手工编排一切,这将远远超过两行代码。

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

+0

感谢您的回答。在MSDN文档中//结束异步响应。 myRequestState.response = myWebRequest1.EndGetResponse(asynchronousResult);这意味着我们结束了答复..但我会收到持续1分钟的答复..你能请解释我.... – 2013-02-19 06:48:41