2011-11-14 49 views
0

我想在我的WPF應用程序中使用twitter streaming API,我可以使用OAuth完成身份驗證過程。我的問題是我沒有意識到從Twitter獲取推文的過程。任何人都可以給我提供一些示例應用程序,它可以幫助我瞭解獲取和更新推文的過程。在wpf應用程序中使用twitter streaming API

謝謝。

+0

你看過圖書館,如[Twitterizer](http://www.twitterizer.net)?它可能會使它更容易。 – ChrisWay

回答

1

從Twitter流中讀取內容非常簡單。您只需提出請求,獲取響應流,然後開始閱讀。例如:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(twitter_search_url); 
// this uses password authentication. Change for OAuth 
request.Credentials = new NetworkCredential(TwitterUser, TwitterPassword); 
request.KeepAlive = true; 
request.UserAgent = user_agent_string; 
HttpWebResponse response; 
try 
{ 
    response = (HttpWebResponse)request.GetResponse(); 
    var reader = new StreamReader(response.GetResponseStream()); 
    string line; 
    while ((line = reader.ReadLine()) != null) 
    { 
     // line contains the tweet. 
     // parse with a JSON reader 
    } 
    // end of stream 
} 
catch (... handle exceptions here) 
{ 
} 
finally 
{ 
    response.Close(); 
} 

響應流本質上是無限的,所以你會被卡在ReadLine永遠循環下去。

我已經使用了上述代碼稍微更完整的版本幾年沒有麻煩。生產代碼當然有更好的錯誤處理,並且循環檢查事件,因此我可以乾淨地退出它,但讀取Twitter流的機制是相同的。

+0

Jim,感謝您的回覆,但我收到了您提出的同樣問題。我陷入了一個無限循環,無法解決這個問題。你能幫我進一步探討如何從這個無限流中讀取數據。 –

+0

@Vibhore:當我說「無限循環」時,我的意思是數據只是持續到來。它永不止息。我沒有任何麻煩閱讀流。上面的代碼沒有辦法*停止*讀取流,但可以很容易地添加。什麼,確切地說,是你遇到的問題。 –

+0

Jim,我需要讀取此流中的所有數據以獲得最近的推文。但問題是我無法從流中讀取所有數據,因爲它會引發InvalidOperationException異常。我正在嘗試使用Stream.ReadToEnd()。 –

相關問題