1.什麼是webservice
我覺得很多概念都說的過於複雜,大概可以理解成一種面向服務編程(SOA)的架構,不依賴於語言,不依賴於平臺,可以實現不同語言的相互調用。(主要使用xml描述)
比較典型的就是天氣預報,不同系統,不同程序,可以通過中國天氣網提供的接口來獲取數據
webservice的 發佈一般都是使用WSDL(web service descriptive language)文件的樣式來發布的,在WSDL文件裏面,包含這個webservice暴露在外面可供使用的接口。
2.安裝
在安裝suds的時候會提示No module named ‘client’,需要先安裝client再安裝suds
import client
ModuleNotFoundError: No module named 'client'
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
pip install client
pip install suds
運行代碼
from suds.client import Client
def webserver():
url = 'http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl'
client = Client(url)
print(client)
if __name__ == '__main__':
webserver()
報錯1
解決方法,手動修改爲正確的語法
報錯2
from cookielib import CookieJar
ModuleNotFoundError: No module named 'cookielib'
報錯3
NameError: name 'unicode' is not defined
解決方法:
Python2 的unicode 函數在 Python3 中被命名爲 str。在 Python3 中使用 ·str 來代替 Python2 中的 unicode.
報錯4
解決方法:
原語句爲:from cStringIO import StringIO
報錯:ModuleNotFoundError: No module named 'cStringIO'
原因爲:Python2.x轉Python3.x的問題
Python2.x的寫法:import StringIO
Python3.x的寫法:from io import StringIO
因爲我的是Python3.6,故將原語句改爲:from io import StringIO
報錯5
解決方法:
ImportError: No module named urllib2
Python 3中urllib2用urllib.request替代
重點的重點
python安裝3的版本這樣安裝會安裝2的版本,重新安裝pip install suds-jurko庫可正常運行
以上代碼可正常運行