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

Python2.7下发布web service(二):服务发布示例

2013-12-18 00:00 253 查看
参考资料:(1) soaplib官方教程

(2) 官方示例,简单的hello world service

(3) 一份较好的中文文档示例

服务声明

import soaplib
from soaplib.core.service import rpc, DefinitionBase,soap #官方文档缺少import soap
from soaplib.core.model.primitive import String, Integer
from soaplib.core.server import wsgi
from soaplib.core.model.clazz import Array

class HelloWorldService(DefinitionBase):
@soap(String,Integer,_returns=Array(String))
def say_hello(self,name,times):
results = []
for i in range(0,times):
results.append('Hello, %s'%name)
return results

服务部署

if __name__=='__main__':
try:
from wsgiref.simple_server import make_server
soap_application = soaplib.core.Application([HelloWorldService], 'tns')
wsgi_application = wsgi.Application(soap_application)
server = make_server('localhost', 7789, wsgi_application)
server.serve_forever()
except ImportError:
print "Error: example server code requires Python >= 2.5"

服务调用

from suds.client import Client
hello_client = Client('http://localhost:7789/?wsdl')
result = hello_client.service.say_hello("Dave", 5)
print result

#输出结果:
#(stringArray){
#   string[] =
#      "Hello, Dave",
#      "Hello, Dave",
#      "Hello, Dave",
#      "Hello, Dave",
#      "Hello, Dave",
# }
客户端调用服务,需要安装suds。
下载,cmd进目录,setup.py install
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息