如何使用.Net阅读公共Twitter提要(在Windows Phone上)

时间:2011-01-01 20:44:18

标签: c# .net windows-phone-7 twitter

我正在尝试阅读用户的公共推特状态,以便我可以在我的Windows Phone应用程序中显示它。

我正在使用Scott Gu的例子: http://weblogs.asp.net/scottgu/archive/2010/03/18/building-a-windows-phone-7-twitter-application-using-silverlight.aspx

当我的代码从异步调用返回时,一旦我尝试使用e.Result,我就会收到“System.Security.SecurityException”。

我知道我的uri是正确的,因为我可以在浏览器中填充它并获得良好的结果。

这是我的相关代码:

    public void LoadNewsLine()
    {
        WebClient twitter = new WebClient();

        twitter.DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitter_DownloadStringCompleted);
        twitter.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=krashlander"));          
    }

    void twitter_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        XElement xmlTweets = XElement.Parse(e.Result); //exception thrown here!

        var message = from tweet in xmlTweets.Descendants("status")
                      select tweet.Element("text").Value;

       //Set message and tell UI to update.
       //NewsLine = message.ToString(); 
       //RaisePropertyChanged("NewsLine");
    }

任何想法?

解: 我终于想出了这一个。我只是忘了取消注释:  WMAppManifest.xml中的功能。 一旦我这样做,安全例外就消失了。

6 个答案:

答案 0 :(得分:4)

我终于想到了这一个。我只是忘了取消注释:

      <Capability Name="ID_CAP_NETWORKING"/>
WMAppManifest.xml中的

功能。一旦我这样做,安全例外就消失了。

答案 1 :(得分:3)

你应该看看TweetSharp。它对我来说很有效。 http://tweetsharp.codeplex.com

答案 2 :(得分:0)

我在自己的应用上点击类似内容。这是我的解决方案:

WebClient twitter=new WebClient();
twitter.OpenReadCompleted += new OpenReadCompletedEventHandler(twitter_OpenReadCompleted);
twitter.OpenReadAsync(new Uri("http://api.twitter.com..."));

void twitter_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) {
   ...
}

答案 3 :(得分:0)

我尝试了你发布的代码并且没有抛出任何异常,获得了预期的结果,一切似乎都很好。因此,您的电脑上必须有一些东西,网络连接(代理等)导致这种情况。什么是详细的例外,StackTrace?也许Simple use of WebClient on Windows Phone 7 throws a NetworkError会对你有帮助吗?

答案 4 :(得分:0)

当以任何方式交叉引用线程时,通常会发生此异常。在这种情况下,它可能与Webclient始终在UI线程上返回有关。您可以通过使用HttpWebRequest来解决问题(无论如何,这是更好的性能)。 检查msdn论坛上的this主题以获取更多信息

答案 5 :(得分:0)

您可能需要查看此处提供的应用程序。此应用程序会显示指定用户名的推文,并允许您将推文导出为pdf,excel,word,image等。

http://blogs.gcpowertools.co.in/2012/05/activereporting-with-twitter.html