通过RSS进行的Facebook通知轮询在第二次运行时失败了,有人知道原因吗?

本文关键字:失败 运行时 RSS Facebook 通知 第二次 通过 | 更新日期: 2023-09-27 18:02:08

所以我有一段代码可以在第一次调用中工作,并且可以通过RSS告诉我我在Facebook上的最新通知。但是,当我第二次去轮询它时,它就在创建rssReader对象之前冻结了。

private string getLatest()
    {
        var req = (HttpWebRequest)WebRequest.Create(rssFeedURL);
        req.Method = "GET";
        req.UserAgent = "Fiddler";
        var rep = req.GetResponse();
        var rssReader = XmlTextReader.Create(rep.GetResponseStream());
        if(rssReader.ReadToFollowing("item"))
        {                
            rssReader.ReadToFollowing("title");
            return rssReader.ReadElementContentAsString();   
        }
        return latest;
    }
谁能告诉我这是为什么?(这段代码与其他代码几乎相同)

在这个函数中被调用:

public string alertFeed()
{
    string re = getLatest();
    if (re.Equals(latest))
            return null;
            latest = re;
            return "Facebook Notification, " + re;
    }
}
编辑:

这里是固定的代码,对于任何感兴趣的人:

    private string getLatest()
    {
        var req = (HttpWebRequest)WebRequest.Create(rssFeedURL);
        req.KeepAlive = false;
        req.Method = "GET";
        req.UserAgent = "Fiddler";
  --->  using (WebResponse rep = req.GetResponse())
        {
            var rssReader = XmlTextReader.Create(rep.GetResponseStream());
            if (rssReader.ReadToFollowing("item"))
            {
                rssReader.ReadToFollowing("title");
                return rssReader.ReadElementContentAsString();
            }
  --->  }
        return latest;
    }

指向的部分是我必须添加的,正如Gratz指出的那样,我也可以使用rep.Close();。

通过RSS进行的Facebook通知轮询在第二次运行时失败了,有人知道原因吗?

可能是因为你没有关闭WebResponse "rep"

rep.Close();