2013-02-18 70 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