如何最好地检测到订阅已更新?比如说,我有一个应用程序每隔15分钟轮询一次订阅源。那么我该如何找出是否添加了新内容呢?对于 RSS 和 Atom 订阅都适用。
RSS 2和Atom中的每个项目都有一个GUID/ID,可以标记为唯一。如果标记为唯一,则可以使用它来识别项目并与以前的项目进行匹配。
在请求字段时,检查http响应的Last-Modified和ETag字段。更好的方法是在您的请求中使用If-Modified-Since和If-None-Match标记,如果该Feed没有被修改,则只会收到304响应。(参见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)
我在我的项目中使用etags,如下所示,在servlet过滤器中计算 http://www.infoq.com/articles/etags
这对于rss、atom或任何其他托管在您的Web服务器上的资源都适用。