将数据定义为xml格式,通过http协议进行远程传输
写道
XML-RPC是一种比SOAP更早的、简单的轻量级Web服务技术。XML-RPC是XMLWeb服务的鼻祖。
它是一个用于远程过程调用(Remote Procedure Call RPC)的简单规范,这种调用使用HTTP作为传输协议,并使用XML词汇表作为消息有效负载。
由于XML-RPC非常简单(整个规范打印出来还不到十页纸),它已经变得非常流行,现在大多数语言都有了标准的或已经可用的XML-RPC实现。
它是一个用于远程过程调用(Remote Procedure Call RPC)的简单规范,这种调用使用HTTP作为传输协议,并使用XML词汇表作为消息有效负载。
由于XML-RPC非常简单(整个规范打印出来还不到十页纸),它已经变得非常流行,现在大多数语言都有了标准的或已经可用的XML-RPC实现。
python实现
服务端
#Python附带了SimpleXMLRPCServer,它是一个用来实现XML-RPC服务器的模块。
#要公开XML-RPC服务,您可以向SimpleXMLRPCServer模块中与其同名的类的一个实例注册函数或实例。
#最直接的方法就是编写带有实现您需求的方法的实例,然后注册这个实例。
import SimpleXMLRPCServer
class HelloWorld:
def say(self):
return "hello, world!"
obj = HelloWorld()
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 80))
server.register_instance(obj)
print "Listening on port 80..."
server.serve_forever()
客户端
#编写PythonXML-RPC客户机非常容易。
#模块xmlrpclib拥有所需的全部工具。
#为调用一个远程XML-RPC对象,您可以创建一个代理对象,它用XML-RPC把请求转发给服务器。
#代理对象的外观和感觉就和常规的Python对象一样,并且请求就是简单的函数调用。
import xmlrpclib
server = xmlrpclib.ServerProxy("http://localhost:80")
print "result: " + server.say()