python建立webservice服务,WSDL服务客户端/服务端
什么是webservice服务
Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的应用程序。百度词条
什么是soap协议
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。百度词条
如何创建webservice客户端
安装依赖
pip install spyne
pip install suds-jurko
客户端启动代码
wsdl_client.py
import suds
from suds.client import Client
url = "http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl"
client = suds.client.Client(url)
解WSDL服务端结构链接
加入wsdl网址
添加地址之后解析出方法
选择一个方法
返回数据
创建的客户端操作
result = client.service.getDatabaseInfo()
print(result)
客户端相关完毕
如何创建WSDL服务端
安装依赖
pip install spyne
pip install lxml
直接上代码
wsdl_service.py
from spyne.application import Application
from spyne.decorator import rpc
from spyne import ServiceBase, String
from spyne.protocol.soap import Soap11
from spyne.server.wsgi import WsgiApplication
from wsgiref.simple_server import make_server
class Test(ServiceBase):
@rpc(String, _returns=String)
def get_data(self, post_data):
return post_data if post_data else ""
app = Application([Test], 'http://schemas.xmlsoap.org/soap/envelope',
in_protocol=Soap11(validator='lxml'), out_protocol=Soap11())
wsgi_app = WsgiApplication(app )
if __name__ == '__main__':
server = make_server('0.0.0.0', 8080, wsgi_app )
server.serve_forever()
客户端测试请求
url = "http://127.0.0.1:8080/sbcsxt/services/GetMethods?wsdl"
result = client.service.get_data('测试测试')
print(result)
end–欢迎留言交流。
打赏码
乞讨码