在RSS源中检测新项目

15

如何最好地检测到订阅已更新?比如说,我有一个应用程序每隔15分钟轮询一次订阅源。那么我该如何找出是否添加了新内容呢?对于 RSS 和 Atom 订阅都适用。

3个回答

6

RSS 2和Atom中的每个项目都有一个GUID/ID,可以标记为唯一。如果标记为唯一,则可以使用它来识别项目并与以前的项目进行匹配。


根据http://www.rssboard.org/rss-specification#ltguidgtSubelementOfLtitemgt,`guid`是一个可选字段,因此在某些RSS源中可能不存在! - webNeat

5

在请求字段时,检查http响应的Last-Modified和ETag字段。更好的方法是在您的请求中使用If-Modified-Since和If-None-Match标记,如果该Feed没有被修改,则只会收到304响应。(参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)


2
所有的网站提要都支持ETag吗?ETag是否容易被JavaScript读取? - haden

1

我在我的项目中使用etags,如下所示,在servlet过滤器中计算 http://www.infoq.com/articles/etags

这对于rss、atom或任何其他托管在您的Web服务器上的资源都适用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接