天正建筑lisp编程接口_用lisp开发博客客户端

博客客户端如何实现

像我们这种基本没接触过Web开发的人,可能完全没有思路去实现一个博客客户端。事实上

实现起来非常简单。

使用过其他博客客户端(例如Windows Live writer)的人肯定知道metaweblog API,在配

置客户端的时候需要填入。例如CPPBLOG的这个地址就是

http://www.cppblog.com/kevinlynx/services/metaweblog.aspx。这个页面展示了一些API

说明。这些API就是博客客户端和服务器进行操作通信的接口。意思是说,服务器端提供这

这些接口,我们的客户端调用这些接口即可。例如:

blogger.deletePost,调用该接口即可删除一篇博客文章

但是客户端如何调用到这个接口呢?这需要通过一种新的技术(或者说标准),即 xml rpc

。rpc大家应该清楚,xml rpc其实说白了, 就是把接口调用的细则塞进 http

请求发给web服务器,服务器接收请求完成操作后再把结果以http回应的形式丢给客户端,

即完成了一次接口调用 。

至于http请求回应的细则就不提了,无非就是一些特殊格式的数据,通过tcp连接与服务器

交互这些数据。

所以,基本上,整个过程还是非常简单。如何来将调用细节塞进http请求,则是以xml rpc

标准来做,其格式正好是xml格式。举个例子吧:

title_or_id

当然这部分数据之前就是若干http请求的数据。服务器回应也是以xml格式组织:

Welcome to Zope.org

我们的博客客户端所要做的,就是把这些博客发布相关的操作封装起来提供给使用者。底层

实现主要包括http请求、xml-rpc的组织等。何况,这两部分在各个语言里都有大量的库存

在,lisp自然也有。

我这里直接选取了lisp的一个xml-rpc库:s-xml-rpc,基本上百来行代码就可以把各个功

能跑一遍。例如以下lisp代码就实现了通过s-xml-rpc删除CPPBLOG的一篇文章:

(defun delete-post (postid)

(rpc-call

"blogger.deletePost"

postid

"kevinlynx"

"password"

t))

发布博客也很简单,根据metaweblog API接口的说明,发布博客时需要填充一个结构体。但

主要涉及到的数据仅包括:文章内容、文章标题、文章分类(可选):

(defun new-post (title context &optional (cates))

(rpc-call

"metaWeblog.newPost"

""

"kevinlynx"

"password"

(new-post-struct title context cates)

t))

值得注意的是,如果文章中有贴图,则需要事先将图片文件上传到服务器。CPPBLOG的

metaweblog API里恰有API提供:

(defun new-media-object (filename)

(rpc-call

"metaWeblog.newMediaObject"

""

"kevinlynx"

"password"

(new-media-object-struct filename)))

该函数读入图片文件,然后调用metaWeblog.newMediaObject接口,即可完成上传。上传成

功后,服务器会返回该图片的URL。然后在我们的文章中就可以使用该图片了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值