在单个呼叫中具有多个不同URL的Suds客户端实现,可能吗?

时间:2014-05-20 11:42:15

标签: soap client suds

我想向URL2方法发出一个SOAP请求(这将给出我想要的响应),其中包括以下结构。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="URL1" xmlns:ns1="URL2">
<soapenv:Header>
<ns:method1>
<element1><your value1></element1>
<element2><your value2></element2>
<element3><your value3></element3>
</ns:method1>
</soapenv:Header>
<soapenv:Body>
<ns1:method2>
<element1><your value1></element1>
<element2><your value2></element2>
<element3><your value3></element3>
</ns1:method2>
</soapenv:Body>
</soapenv:Envelope>

现在,为了达到这个目的,我使用了以下替代方法:

from suds.client import Client

client = Client(URL2)

client.service.method2(element1 = 'value1',element2 = 'value2',element3 = 'value3',)

但它给了我&#39; suds.WebFault:服务器引发的错误:&#39;处理时出错。&#39;

我担心的是,这里method1使用URL1进行一些身份验证,但无法在SOAP请求中设置头。任何小的帮助都会很明显。谢谢!

1 个答案:

答案 0 :(得分:0)

解析参数可能有问题。

使用以下命令替换最后一个命令时的输出结果如何:

print client

所以你的代码应该是这样的:

from suds.client import Client
client = Client(URL2)