您的位置:首页 > 编程语言 > Python开发

Python XML-RPC

2012-11-15 21:25 183 查看
XML-RPC

xmlrpc是使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据。

一个rpc系统,必然包括2个部分:

1)rpc client,用来向rpc server调用方法,并接收方法的返回数据;

2)rpc server,用于响应rpc client的请求,执行方法,并回送方法执行结果。

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

以上内容摘自:百度百科

xmlrpc的好处:

1. 传输复杂的数据。

2. 通过程序语言的封装,实现远程对象的调用。

一个示例:

view
plaincopy
to clipboardprint?

# The server code

from SimpleXMLRPCServer import SimpleXMLRPCServer

def is_even(n):

return n%2 == 0

server = SimpleXMLRPCServer(("localhost", 8000))

print "Listening on port 8000..."

server.register_function(is_even, "is_even")

server.serve_forever()

view
plaincopy
to clipboardprint?

# The client code

import xmlrpclib

proxy = xmlrpclib.ServerProxy("http://localhost:8000/")

print "3 is even: %s" % str(proxy.is_even(3))

print "100 is even: %s" % str(proxy.is_even(100))

支持传输的数据类型:
NameMeaning
booleanThe True and False constants
integersPass in directly
floating-point numbersPass in directly
stringsPass in directly
arraysAny Python sequence type containing conformable elements. Arrays are returned as lists
structuresA Python dictionary. Keys must be strings, values may be any conformable type. Objects of user-defined classes can be passed in; only their __dict__ attribute
is transmitted.
datesin seconds since the epoch (pass in an instance of the DateTime class) or a datetime.datetimeinstance.
binary datapass in an instance of the Binary wrapper class
xmlrpc能用来干啥?

开发API。

大名鼎鼎的WordPress就有xmlrpc接口,比如,可以用于该接口发布文章。想了解更多可以看这篇文章 http://blog.bluesky.cn/archives/466/using-xml-rpc-protocol-to-read-and-write-articles-on-wordpress.html,我还找到了封装非常好的库wordpresslib(http://www.blackbirdblog.it/programmazione/progetti/28)。

参考文章:

http://docs.python.org/library/xmlrpclib.html

http://en.wikipedia.org/wiki/XML-RPC

/article/4688606.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: