欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python使用xmlrpc实例讲解

程序员文章站 2024-02-06 21:15:04
rpc是remote procedure call的缩写,翻译成中文就是远程方法调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布...

rpc是remote procedure call的缩写,翻译成中文就是远程方法调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为了提高各个分立机器的“互操作性”而发明出来的技术。

xml-rpc的全称是xml remote procedure call,即xml远程方法调用。

它是一套允许运行在不同操作系统、不同环境的程序实现基于internet过程调用的规范和一系列的实现。
这种远程过程调用使用http作为传输协议,xml作为传送信息的编码格式。
xml-rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。
python下的xml-rpc:

1、类库:xmlrpclib    一般使用在客户端,这个模块用来调用注册在xml-rpc服务器端的函数,xmlrpclib并不是一个类型安全的模块,无法抵御恶意构造的数据,这方面的一些处理工作需要交给开发者自己。

2、类库:simplexmlrpcserver   一般是用在服务器端,这个模块用来构造一个最基本的xml-rpc服务器框架

3、构造一个基本的xml-rpc server:

复制代码 代码如下:

from simplexmlrpcserver import simplexmlrpcserver

def is_even(n):
    return n%2 == 0
server = simplexmlrpcserver(("localhost", 8000))#确定url和端口
print "listening on port 8000..."
server.register_function(is_even, "is_even") #注册is_even函数
server.serve_forever()#启动服务器,并使其对这个连接可用

4、构造一个基本的xml-rpc client:

复制代码 代码如下:

import xmlrpclib
proxy = xmlrpclib.serverproxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))#客户端调用xml-rpc函数
print "100 is even: %s" % str(proxy.is_even(100))