2011-12-09 80 views
0

假設我使用HttpWebRequest來調用用python編寫的web服務,並且該服務返回一個XML文件。讓我們假設下載數據需要10秒。使用HttpWebRequest下載

HttpWebResponse response = (HttpWebResponse)req.GetResponse(); 

if(allDate100%Transfered) 
MsgBox.show("u can now CUT your cable. All data is there!!!"); 

是否有任何財產來檢查是否一切都已轉移?

因爲我想繼續讀取接收到的數據到字符串中,但只有當所有數據都被成功下載時。

Stream dataStream = response.GetResponseStream(); 
StreamReader reader = new StreamReader(dataStream); 
String xml = reader.ReadToEnd(); 

難道我得到任何消息,或從Web服務,它告訴我,所有的數據都是真的存在,我不需要連接了簽字?

編輯:問題是stil那裏。我得到不同的答案,他們相互矛盾彼此。

+0

花更多時間在格式和英語上。使用** bold **而不是大寫字母,並避免感嘆號。你的代碼不應該說'response.GetResponseStream()'? – jgauffin

回答

2

request.GetResponse()是同步的,這意味着它不會返回,直到所有的數據被下載。

request.GetResponse()The documentation指出,如果WebException拋出:

  • 中止之前被調用。
  • 請求的超時期限已過期。
  • 處理請求時發生錯誤。

這意味着如果沒有異常拋出,一切都會好起來。

+0

http://stackoverflow.com/a/8391670/963546; Quote:GetResponse不會返回完整的響應流。 **現在是什麼情況?** – Gero

+0

文檔中沒有任何內容表明其他答案陳述的是真實的。我很難相信,除非調用GetResponseStream,否則不會從服務器獲取主體。 – jgauffin

+0

當我調用'Stream dataStream = response.GetResponseStream();'時,web服務和我之間是否有任何通信? – Gero

相關問題