testservice.py
from spyne import ServiceBase, Iterable, Unicode, Integer, Application, rpcfrom spyne.protocol.soap import Soap11from spyne.server.wsgi import WsgiApplicationclass HelloWorldService(ServiceBase): ???@rpc(Unicode, Integer, _returns=Iterable(Unicode)) ???def say_hello(ctx, name, times): ???????for i in range(times): ???????????yield ‘Hello, %s‘ % nameapplication = Application([HelloWorldService], ?????????????????????????tns=‘spyne.examples.hello‘, ?????????????????????????in_protocol=Soap11(validator=‘lxml‘), ?????????????????????????out_protocol=Soap11())if __name__ == ‘__main__‘: ???from wsgiref.simple_server import make_server ???wsgi_app = WsgiApplication(application) ???server = make_server(‘0.0.0.0‘, 8000, wsgi_app) ???server.serve_forever()
testclient.py
from suds.client import Clientwsdl_url = "http://localhost:8000/?wsdl"def say_hello_test(url, name, times): ???client = Client(url) ???client.service.say_hello(name, times) ???req = client.last_sent() ???response = client.last_received() ???print(req.str()) ???print(response.str())if __name__ == ‘__main__‘: ???say_hello_test(wsdl_url, ‘test‘, 2)
官网 传送门
一个简单的webservice spyne和suds简单使用
原文地址:https://www.cnblogs.com/412013cl/p/9262519.html