没有合适的资源?快使用搜索试试~ 我知道了~
Python基于xmlrpc的webservice服务以及在odoo中的使用
5星 · 超过95%的资源 需积分: 28 157 下载量 17 浏览量
2014-09-03
12:01:06
上传
评论 2
收藏 205KB PDF 举报
温馨提示
试读
4页
Python基于xmlrpc的webservice服务以及在odoo中的使用
资源推荐
资源详情
资源评论
Python基于xmlrpc的webservice服务以及在odoo中的使用
XML-RPC通过xml来传输RPC,在Python中提供了xmlrpclib模块进行了封装。参考文
档https://docs.python.org/2/library/xmlrpclib.html
一个简单的例子
from SimpleXMLRPCServer import SimpleXMLRPCServer
class HelloService:
def sayHello(self, name):
return "Hello " + name;
def start_server():
obj = HelloService()
server = SimpleXMLRPCServer(("localhost", 8080))
server.register_instance(obj)
server.serve_forever()
print "Server Started...."
上面的例子作为服务端采用了SimpleXMLRPCServer,需要指定host和port即可。在这个例子里注册了一个对象实例,接下来看看
客户端的写法
import xmlrpclib
def helloClient():
server = xmlrpclib.ServerProxy("http://localhost:8080")
words = server.sayHello("Python")
print "result: %s" % (words,)
这样就完成了一个请求的过程。当然这只是一个很简单的例子,上面是注册实例,那么对象里面的方法都可以访问。同样也支持对
函数的注册
将函数作为服务发布
def division(x, y):
return x / y
def server_reg_func():
server = SimpleXMLRPCServer(("localhost", 8080))
server.register_function(division, "division")
server.serve_forever()
print "Server Started...."
将函数作为服务发布采用了方法register_function,需要传入参数函数和调用的名称。那么在客户端访问和上面例子基本一致,
只需要调用函数名为注册的(division)即可server.division(2, 5)。上面的例子只注册了一个函数发布服务,在现实世界中可能
会有多个服务,那也是支持的
注册多个函数作为服务发布
def server_multi_funcs():
server = SimpleXMLRPCServer(("localhost", 8080))
server.register_multicall_functions()
server.register_function(division, "division")
server.register_function(add, "add")
server.serve_forever()
print "Server Started...."
这里新增了函数register_multicall_functions调用,那么就支持同时注册多个函数发布服务,这是在客户端需要做一些调整,不
会直接返回结果而是将调用的结果作为实例返回
def multi_fun_client():
server = xmlrpclib.ServerProxy("http://localhost:8080")
multicall = xmlrpclib.MultiCall(server)
try:
multicall.division(2, 5)
multicall.add(2, 0)
result = multicall()
print type(result)
print "2/5=%d, 2+0=%d" % tuple(result)
莫雷里亚
- 粉丝: 39
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页