通过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();。
可能是因为你没有关闭WebResponse "rep"
rep.Close();