python 調用webserver接口

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庫可正常運行

以上代碼可正常運行

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章