簡體   English   中英

Python-Suds0.4-SOAP主體復雜參數

[英]Python - Suds0.4 - SOAP body complex arguments

我嘗試通過SUDS0.4將python客戶端連接到SOAP服務器。 通常,為了給SOAP函數提供一個復雜的參數,我使用python字典:示例,如果SOAP參數看起來像這樣:

<parameterDesignatorValuePair>
<parameterDesignator>Message</parameterDesignator>
<parameterValue>AAAABgBDAG8AdQBjAG8AdQ==</parameterValue>
</parameterDesignatorValuePair>

我的python代碼如下所示:

result = client.service.myfunction(parameterDesignatorValuePair={'parameterDesignator':val1,'parameterValue':val2})

現在,我嘗試連接到尚未編程的SOAP服務器,但是我知道從現有的Java客戶端中請求的SOAP主體必須是什么樣的:(感興趣的部分)

...
<parameterDesignatorValuePairSet>
<parameterDesignatorValuePair>
<parameterDesignator>Message</parameterDesignator>
<parameterValue>AAAABgBDAG8AdQBjAG8AdQ==</parameterValue>
</parameterDesignatorValuePair>
<parameterDesignatorValuePair>
<parameterDesignator>Sender</parameterDesignator>
<parameterValue>AAAABwBSAGUAbgBhAHUAbABk</parameterValue>
</parameterDesignatorValuePair>
</parameterDesignatorValuePairSet>
...

因此,我必須傳遞由兩個具有完全相同名稱“ parameterDesignatorValuePair”的復雜參數組成的復雜參數“ parameterDesignatorValuePairSet”:我無法通過使用python字典來做到這一點:-(

我試圖使用列表和元組,但SUDS返回我錯誤...

謝謝你的幫助

您是否嘗試過這樣做:

param = client.factory.create('ns1:parameterDesignatorValuePairNamespace')
param.parameterDesignator = val1
param.parameterValue = val2

client.service.FunctionName(param)

連接SUDS后,通過打印WSDL文件可以使用命名空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM