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サーバーに接続しようとしていますが、リクエストのSOAPボディが既存のJavaクライアントからどのように見える必要があるかを知っています:(興味のある部分)
...
<parameterDesignatorValuePairSet>
<parameterDesignatorValuePair>
<parameterDesignator>Message</parameterDesignator>
<parameterValue>AAAABgBDAG8AdQBjAG8AdQ==</parameterValue>
</parameterDesignatorValuePair>
<parameterDesignatorValuePair>
<parameterDesignator>Sender</parameterDesignator>
<parameterValue>AAAABwBSAGUAbgBhAHUAbABk</parameterValue>
</parameterDesignatorValuePair>
</parameterDesignatorValuePairSet>
...
したがって、まったく同じ名前「parameterDesignatorValuePair」を持つ2つの複雑な引数で構成される複雑な引数「parameterDesignatorValuePairSet」を渡す必要があります。Python辞書を使用してそれを行うことはできません:-(
リストとタプルを使用しようとしましたが、SUDS からエラーが返されました...
助けてくれてありがとう