昨天在看接口测试书的时候,提到了webserver,今天便弄来实验一番
1.什么是webservice
我觉得很多概念都说的过于复杂,大概可以理解成一种面向服务编程(SOA)的架构,不依赖于语言,不依赖于平台,可以实现不同语言的相互调用。(主要使用xml描述)
比较典型的就是天气预报,不同系统,不同程序,可以通过中国天气网提供的接口来获取数据
webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。
2.python相关的包
首先是需要suds但是在安装的时候会提示No module named ‘client’,所以可以先安装client再安装suds
值得注意的是python3需要的是suds-jurko
通过pip安装即可
3.调用webserver接口
from suds.client import Client if __name__ == '__main__': url = 'http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl' client = Client(url) print(client)
打印出来的信息如下
Suds ( https://fedorahosted.org/suds/ ) version: 0.6 Service ( TraditionalSimplifiedWebService ) tns="http://webxml.com.cn/" Prefixes (0) Ports (2): (TraditionalSimplifiedWebServiceSoap) Methods (2): toSimplifiedChinese(xs:string sText) toTraditionalChinese(xs:string sText) Types (0): (TraditionalSimplifiedWebServiceSoap12) Methods (2): toSimplifiedChinese(xs:string sText) toTraditionalChinese(xs:string sText) Types (0):
其中Methonds里面是webserver的方法,比如toSimplifiedChinese,toTraditionalChinese
括号里面的是需要传入的参数
4.调用webserver的方法
from suds.client import Client if __name__ == '__main__': url = 'http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl' client = Client(url) print(client.service.toSimplifiedChinese('龍的傳人'))
通过 client.service.方法名(参数) 的方式调用
打印结果如下
龙的传人
此处20多个常用的免费WebService接口 https://www.cnblogs.com/ooooo/archive/2011/12/28/2304777.html 可以多用来试试