昨天在看接口測試書的時候,提到了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 可以多用來試試