2014-12-13 97 views
0

這是我第一次使用SOAP,我試圖使用python發送服務調用。我用SOAPypysimplesoap作爲客戶端庫。發送基於SOAP協議的服務調用

我有以下幾點:

  1. WSDL File
  2. XSD文件。
  3. 我嘗試執行的方法名稱。
  4. 所有需要的參數。

我想要做什麼:

  1. 執行的方法。
  2. 獲取從方法返回的xml文件

這是一個工作PHP Script就像我想要的,但我需要它在Python中。

回答

0

只需使用這段代碼:

from pysimplesoap.client import SoapClient 
client = SoapClient(wsdl="your_file.wsdl",trace=False) 
response = client.YourMehtod(p="parameter") 
result = response['YourResult'] 

的事情,你需要從這段代碼得到的是:

  1. 「your_file.wsdl」應該是指向你的WSDL的一個網址文件位置。可能是存儲在文件系統上的HTTP URL或文件。
  2. YourMethod是您要調用的方法的名稱(把所有的方法提供給你,在代碼片段的第二行的電話後使用print client
  3. YourRestult是你從得到的結果呼叫。使用print response檢查你所得到的所有結果。

你也可以考慮使用suds庫,如果SOAP客戶端是你所關心的。

+0

1.我得到了一個意想不到的**關鍵字參數**由於初始化SoapClient時的_trace_。 2.代碼的第三行拋出一個** TypeError ** _call()接受3個參數(給出2個)_ – mbanayosi 2014-12-13 11:46:24

+0

對於**意外的關鍵字**,您可能使用的是不同版本的** pysimplesoap * *。只需刪除該參數。第二個錯誤顯然是因爲您的遠程方法需要多個參數。根據需要添加儘可能多的參數。 – 2014-12-13 11:50:32

+0

參數應該是什麼類型?我試着_dict_,_tuples_數組都失敗了。 – mbanayosi 2014-12-13 12:16:58