1. 简介
webservice的基础组成是http+xml,是HTTP的一个专用版本,遵循一种特殊的xml消息格式
2. 使用
2.1 安装库
pip install suds-jurko
2.2 查看接口方式
from suds.client import Client
from suds import WebFault
url = "http://120.24.235.105:9010/sms-service-war-1.0/ws/smsFacade.ws?wsdl"
params = {'client_ip': '192.168.100.100', 'tmpl_id': '1', 'mobile': '13333363336'}
# 实例化
client = Client(url)
print(client)
# client数据返回如下:
Suds ( https://fedorahosted.org/suds/ ) version: 0.6
.......
Methods (3):
sendMCode(ns0:sendCodeParams arg0)
sendSM(ns0:sendMessageParams arg0)
verifyMCode(ns0:verifyCodeParams arg0)
Types (11):
ns0:commResult
...
ns0:verifyMCodeResponse
2.3 查看请求返回
res = client.service.sendMCode(params)
print(res)
r =res["retCode"]
print(r)
# 返回数据如下:
(result){
retCode = "0"
retInfo = "ok"
}
0
4. 封装类
from suds.client import Client
from suds import WebFault
class WebService:
def web_service(self, url, params, method):
# 实例化
client = Client(url)
# 判断方法
if method == "sendMCode":
try:
res = client.service.sendMCode(params)
# 异常处理
except WebFault as e:
return e.fault['faultstring']
return res["retCode"]
if __name__ == '__main__':
url = 'http://120.24.235.105:9010/sms-service-war-1.0/ws/smsFacade.ws?wsdl'
params0 = {'client_ip': '192.168.100.100', 'tmpl_id': '1', 'mobile': '13333383336'}
params1 = {'client_ip': '', 'tmpl_id': '1', 'mobile': '13333383336'}
params2 = {'client_ip': '192.168.100.100', 'tmpl_id': '1', 'mobile': ''}
list = [params0, params1, params2]
for item in list:
r = WebService().web_service(url, item, "sendMCode")
print(r)
print(type(str(r)))
## 返回数据
0
用户IP不能为空
手机号码错误
<class 'str'>