利用Apache Abdera 框架创建和发布Atom Entry, Atom Feed

上次我们讲了RSS摘要,事实上,还有一种摘要叫Atom摘要,这种摘要主要用于国外,网站空间,它是RSS的一种改良版本。关于RSS摘要的信息,网上很多,就不罗列了,大体上来讲:RSS的<channel>相当于Atom的<feed>,而RSS的<item>相当于Atom的<entry>.至于他们的细节的不同,可以参考这篇博客:

理论不多说了,我想说的是,其实Apache提供了一个叫Abdera的框架,它是ATOM 联合协议(Atom Syndication)和ATOM 发布协议(ATOM Publication,简称APP)的开源实现。关于ATOM 联合协议,它主要用来定义ATOM摘要(feed)和ATOM条目(entry)的的格式,并且遵从RFC4287规范(),而ATOM发布协议,则是用REST的方式来对网上的ATOM文档进行维护,它主要遵从RFC5023规范()

我们这个例子很简单,一是演示如何用Abdera框架创建Atom条目和Atom摘要,二是如何我们创建的条目发布到支持Atom的博客系统上。

准备工作:

我们需要下载Abdera框架:

此外,我们必须注册一个Google账户,并且开通了Google博客系统,美国服务器,比如我的Google博客系统是:。国内的用户可能要翻墙,我是使用了vpn来演示的。

Part 1: Demo如何使用Abdera框架来编写Atom Entry和Atom Feed:

首先,我们编写一个工具类来专门创建Atom条目(Entry):

然后,我们编写一个工具类来专门创建Atom 摘要(Feed):

然后我们编写一个驱动类,来调用这2个方法,根据我们传入的参数来创建相应的条目和摘要,并且打印在控制台上:

最终,我们创建的条目1样子如下:

而我们的Feed文件因为同时包含了条目1和条目2,所以打印出的样子如下:

Part2 :利用Abdera框架和APP(Atom Publishing Protocol)吧我们创建的条目发布到Google Blogger 上:

我们可以用以下的代码:

这段代码中,几个参数我要说明下:

(1) GoogleLoginAuthCredentials中传入的账号密码是你的google账号的信息,而第三个参数是服务名,因为我们请求的是博客服务(blogger),所以这里必须写"blogger"。

(2) client.post()中的第一个参数,是我们要发送的目的地,它也就是我们的博客的feed目标地址,这个地址,我们可以要像下面这样获得:先注册Google Blogger,打开到首页,然后右键选择"view source",然后会看到如下的内容:

可以看到<link rel="alternate" type="application/atom+xml">这个元素就代表你页面上如何管理到Atom Feed,香港空间,所以这个元素后面对应的地址(href),就是我们所需要的, 也就是应该写到client.post()的第一个参数中的。

本文出自 “平行线的凝聚” 博客,请务必保留此出处

于千万年之中,于千万人之中,在时间无涯的荒野中,

利用Apache Abdera 框架创建和发布Atom Entry, Atom Feed

相关文章:

你感兴趣的文章:

标签云: