LinqToTwitter问题与ASP.NET Webforms中的API连接

时间:2014-10-17 08:41:54

标签: asp.net twitter linq-to-twitter

我最近一直在使用LinqToTwitter将它成功地整合到几个站点中。一个网站让我头疼。它似乎在验证,但是一旦你尝试迭代返回的推文集合,我就会收到一个错误:

“远程主机强行关闭现有连接”

这是我的代码:

protected void Page_Load(object sender, EventArgs e)
    {
        var auth = new SingleUserAuthorizer
        {
            CredentialStore = new SingleUserInMemoryCredentialStore
            {
                ConsumerKey = System.Configuration.ConfigurationManager.AppSettings["TwitterAPIKey"],
                ConsumerSecret = System.Configuration.ConfigurationManager.AppSettings["TwitterSecretKey"],
                AccessToken = System.Configuration.ConfigurationManager.AppSettings["TwitterAccessToken"],
                AccessTokenSecret = System.Configuration.ConfigurationManager.AppSettings["TwitterSecretToken"]
            }
        };

        var ctx = new TwitterContext(auth);
        var mytweets = ctx.Status.Where(t => t.Type == StatusType.User && t.ScreenName == "paulpitchford");

        try
        {
            if (mytweets != null)
            {
                foreach (var item in mytweets)
                {
                    tweets.TweetList.Add(TweetParser.ParseTweet(item.Text));
                }
            }
        }
        catch (Exception err)
        {
        }
    }

一旦遇到此行就会发生错误:foreach(mytweets中的var项目)

键与API给定的键完全匹配,我看不出我做错了。任何人都可以建议我可能出错的地方吗?

谢谢。

保罗。

1 个答案:

答案 0 :(得分:1)

LINQ to Twitter是异步的。这意味着您需要在进入 foreach 循环之前实现查询,如下所示:

   var mytweets =
       await
       ctx.Status.Where(
           t => t.Type == StatusType.User && 
           t.ScreenName == "paulpitchford")
       .ToListAsync();

请注意查询和 ToListAsync 运算符上的等待。此外,您必须将 async 修饰符添加到 Page_Load ,如下所示:

    protected async void Page_Load(object sender, EventArgs e)