15.4.2 使用 XML-RPC 进行远程过程调用
除简单的RSS下载和解析机制外,还有远程过程调用。远程过程调用是对基本网络交互的抽象:客户端程序请求服务器程序执行计算并返回结果,但这个过程被伪装成简单的过程(函数或方法)调用。在客户端代码中,远程过程调用看起来就像普通方法调用,但用来调用方法的对象实际上位于另一台计算机中。 XML-RPC可能是最简单的远程过程调用机制,它使用HTTP和XML来实现网络通信。鉴于这种协议是独立于语言的,使用一种语言编写的客户端程序可轻松地调用使用另一种语言编写的服务器程序中的函数。
提示 如果在网上搜索,将找到大量用于Python的其他RPC机制。
Python标准库提供了对客户端和服务器端XML-RPC编程的支持。有关XML-RPC的使用示例,请参阅第27章和第28章。
RPC和REST
远程过程调用可与表述性状态转义式(REST)网络编程比肩,不过这两种机制有天壤之别。基于REST的(RESTful)程序也能让客户端以编程方式访问服务器,但服务器程序不能有任何隐藏的状态,返回什么样的数据完全由指定的URL(在HTTP POST中,是客户端提供的额外数据)决定。
有关REST的详细信息可在网上找到。例如,可参阅维基百科的相关文章(http://en.wikipedia.org/wiki/Representational_State_Transfer)。在RESTful编程中,经常使用的一种协议是JavaScript对象表示法(JSON, http://www.json.org),它简单而优雅,让你能够使用纯文本格式来表示复杂的对象。标准库模块json提供了对JSON格式的支持。
领取专属 10元无门槛券
私享最新 技术干货