将数据定义为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()