将Twitter时间轴作为XML / JSON获取,在Windows 8应用程序中显示

时间:2013-01-03 12:12:34

标签: c# xml twitter windows-8

我目前正在学习如何使用C#中的LINQ to XML显示Twitter提要。但是,看到Microsoft已将 WebClient 替换为 HTTPClient ,我不确定如何继续将其集成到我的Windows 8应用程序中。
教程:http://www.codeproject.com/Articles/117614/How-to-query-twitter-public-status-using-LINQ-to-X

问题是我已经“中途”用于 DownloadStringCompleted ,我认为这不在 HTTPClient api中。在搜索了异步/等待功能的一段时间后,我将我的一些知识与我找到的一些教程和片段混合在一起,但我最终得到的结果不起作用:

    public async Task<XElement> GetXmlAsync()
    {
        var client = new HttpClient();
        var response = await client.GetAsync("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=VladimirPutin");
        var text = response.Content.ReadAsStringAsync();
        return XElement.Parse(text.Result);

        XElement xmlTweets = XElement.Parse(text.Result);
        listboxTweetsSecond.ItemsSource = from tweet in xmlTweets.Descendants("status")
                                          select new UserTweet
                                          {
                                              UserImageSrc = tweet.Element("user").Element("profile_image_url").Value,
                                              UserMessage = tweet.Element("text").Value,
                                              UserName = tweet.Element("user").Element("screen_name").Value
                                          };

    }

(是的,Twitter用户名只是一个占位符)
我不需要整个代码作为答案,但如果有人可以指出我应该从哪里开始,以及我应该做的一般情况,我会喜欢它,因为这(当然)不起作用(如in,当我运行它/调试模式时它没有显示任何内容。)

1 个答案:

答案 0 :(得分:1)

注释掉

return XElement.Parse(text.Result);

它可能会起作用。

完成此操作后(即您不再返回XElement),您可以更改方法签名top返回任务。

public async Task GetXmlAsync()
{
    // method body
}