【问题标题】:Fetch Twitter Timeline as XML/JSON, show in Windows 8 app以 XML/JSON 格式获取 Twitter 时间线,在 Windows 8 应用程序中显示
【发布时间】:2012-12-17 19:16:43
【问题描述】:

我目前正在关注如何在 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 中。所以在 async/await 功能上搜索了一段时间后,我将我的一些知识与我找到的一些教程和 sn-ps 混合在一起,但我最终得到的东西不起作用:

    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 用户名只是一个占位符)
我不需要完整的代码作为答案,但如果有人能指出我应该从这里去哪里以及我应该做什么,我会很高兴,因为这(当然)不起作用(因为在,当我运行它/调试模式时它不显示任何东西)。

【问题讨论】:

    标签: c# xml twitter windows-8


    【解决方案1】:

    注释掉一行

    return XElement.Parse(text.Result);
    

    它应该可以工作。

    完成之后(即您不再返回 XElement),您可能可以更改方法签名 top 仅返回一个任务。

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

    【讨论】:

    • 谢谢。我确定该方法想返回一些东西吗?它输出以下错误:“MainPage.GetXmlAsync()': 并非所有代码路径都返回值”。
    • 它不需要像你写的那样返回任何东西,但是如果你真的想拉回 XElement,在你设置完 ItemsSource 之后把“return”行放在最后
    • 删除 XElement 解决了所有问题,只是没有立即看到您的编辑。非常感谢,这实际上解决了所有问题:)
    • 您知道有什么方法可以限制获取的推文数量吗?假设是 10?
    猜你喜欢
    • 2013-08-30
    • 2013-02-14
    • 2014-07-11
    • 1970-01-01
    • 2018-10-09
    • 2023-03-03
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    相关资源
    最近更新 更多