python suds訪問webservice服務實現
阿新 • • 發佈:2020-06-28
安裝suds
在Python3環境下如果使用:pip install suds,應該會報ImportError: No module named client,這裡推薦安裝suds-py3。
使用
1.獲取所有方法
webservice中的方法,跟http中的get、post這種類似。
from suds.client import Client url = 'http://******************?wsdl' # wsdl地址 client = Client(url) print(client) # 檢視定義的所有方法與請求所需攜帶的引數
返回的Methods中即定義的方法,包括請求所需攜帶的引數與引數型別。
2.呼叫方法
首先呼叫一個不帶引數的方法。
from suds.client import Client url = 'http://************************?wsdl' # wsdl地址 client = Client(url) response = client.service.getRealtimeDataList() # 返回列表,列表每一項是一個realtimeVo物件 for i in response: # 使用Client的dict方法,將realtimeVo物件轉換為dict print(Client.dict(i))
當呼叫需要傳入引數的方法時,在對應方法內直接按順序傳入就可以。
這裡注意引數的型別,比如XML的dateTime型別,不能直接傳入python的datetime型別,會報錯的。這裡需要用suds的DateTime轉換一下。具體程式碼如下。
from suds.client import Client from suds.sax.date import DateTime from datetime import datetime,timedelta url = 'http://***************************?wsdl' # wsdl地址 client = Client(url) now = datetime.now() - timedelta(days=1) yesterday = now.strftime("%Y-%m-%d 00:00:00") # 返回字串形式的日期 date_time = DateTime(yesterday) # DateTime既可以直接傳入字串也可以直接傳入datetime物件,我這裡傳入的字串 response = client.service.getHistoryDataList(date_time,date_time,"address","corpCode") # 返回列表,列表每一項是一個realtimeVo物件 for i in response: # 使用Client的dict方法,將realtimeVo物件轉換為dict print(Client.dict(i))
3.其他
其他方法,比如:
client.set_options() # 設定頭資訊
目前本人沒用到過。
到此這篇關於python suds訪問webservice服務實現的文章就介紹到這了,更多相關python suds訪問webservice服務內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!