我正嘗試使用.NET WebRequest/WebResponse類來訪問此處的Twitter流式API "http://stream.twitter.com/spritzer.json"
。從開放的HTTP流中讀取數據
我需要能夠打開連接並從打開的連接中逐步讀取數據。
當前,當我調用WebRequest.GetResponse
方法時,它將阻塞,直到整個響應被下載。我知道有一個BeginGetResponse
方法,但是這隻會在後臺線程上做同樣的事情。我需要在下載仍在進行時訪問響應流。這些對我來說似乎是不可能的。
有Twitter的文檔在這個特定的評論:
「請注意,連接已經在服務器關閉後,一些HTTP客戶端庫只返回響應體,這些客戶端將無法訪問工作。 Streaming API,你必須使用一個HTTP客戶端來遞增地返回響應數據,大多數健壯的HTTP客戶端庫將提供這種功能,Apache HttpClient將處理這個用例,例如。
他們指向Appache HttpClient,但這並沒有多大幫助,因爲我需要使用.NET。
任何想法,這是否可能與WebRequest/WebResponse
,或我必須去下級網絡類?也許還有其他的庫可以讓我做到這一點?
THX 艾倫
我不能使用WebRequest.BeginGetRequestStream因爲我我沒有試圖將數據異步寫入服務器。另外,在您的示例中,您可以調用GetResponse。正是在這一點上,WebRequest在下載服務器響應時被阻塞。但連接永遠不會關閉,因爲它是一個有效的無窮數據流。 – user108687 2009-07-04 10:00:56