首页 > IT职业 > IT生活 > xml-rpc 远程调用有多简单?
基于以例子为本,看一个简单的xml-rpc服务器,客户端调用代码在""""""内:
from SimpleXMLRPCServer import SimpleXMLRPCServer
server = SimpleXMLRPCServer(("localhost", 8000))
def adder_function(x,y):
return x + y
server.register_function(adder_function, 'add')
class MyFuncs:
def div(self, x, y):
return x // y
server.register_instance(MyFuncs())
server.serve_forever()
""" client
import xmlrpclib
s = xmlrpclib.Server('http://localhost:8000')
print s.add(2,3)
print s.div(5,2)
print s.system.listMethods()
"""
简单介绍:
server.register_function(adder_function, 'add')
只要调用register_function,传入的函数就可以公开给客户端调用。
只要调用register_instance(MyFuncs()),类的实例内的所有方法都可以在Server空间下,公开给客户端调用。
xml-rpc的主要有点就是简单,简单的令人不能置信。
缺点是:
1. 参数不支持传递中文,unicode 都这么多年了,这个能力的确实有些不可想象。
2. 1999年以来就不变了,看来是不想变了
3. 不能把类型传递给客户端,没有类似dcom的tlb,或者webservice的wsdl。调用的时候不能做静态类型检查。
SOAP在这个方面要想当然好得多。
因此xml-rpc对我而言,可以用于做研究和试验用。简单啊。
但是不可以把他用于商业程序。
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/764121/viewspace-906268/ ,如需转载,请注明出处,否则将追究法律责任。