我正在尝试使用 python zeep 连接到肥皂服务(使用 wsdl )。
以下是soap-ui 为操作生成的XML。
然而我发现它很难确定如何设置肥皂头。
在这种情况下,我们有标头中的多个 XML 元素.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:acm="http://www.acme.com/ACM">
<soapenv:Header>
<acm:MessageID>?</acm:MessageID>
<acm:ExName>?</acm:ExName>
<acm:Authentication>
<acm:Username>?</acm:Username>
<acm:Password>?</acm:Password>
</acm:Authentication>
</soapenv:Header>
<soapenv:Body>
<acm:LIST_STOCKS>
<!--Optional:-->
<acm:STOCKID>?</acm:STOCKID>
<!--Optional:-->
<acm:PRODUCT>?</acm:PRODUCT>
</acm:LIST_STOCKS>
</soapenv:Body>
</soapenv:Envelope>
Thanks.
这是一个老问题,但我会在这里留下答案以供将来参考。
文档中并不清楚,但您可以通过设置来设置元素_soap_headers
带着字典。
在给定的示例中:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:acm="http://www.acme.com/ACM">
<soapenv:Header>
<acm:MessageID>?</acm:MessageID>
<acm:ExName>?</acm:ExName>
<acm:Authentication>
<acm:Username>?</acm:Username>
<acm:Password>?</acm:Password>
</acm:Authentication>
</soapenv:Header>
<soapenv:Body>
<acm:LIST_STOCKS>
<!--Optional:-->
<acm:STOCKID>?</acm:STOCKID>
<!--Optional:-->
<acm:PRODUCT>?</acm:PRODUCT>
</acm:LIST_STOCKS>
</soapenv:Body>
</soapenv:Envelope>
您可以像这样发送标头:
# Prepare header values and dicts
MessageID = 000
ExName = 'Value'
Authentication = {'Username': 'User', 'Password': 'YourPassword'}
# Set required body content
LIST_STOCKS = []
# Call service and set SOAP headers directly in _soapheaders using dictionary
response =
self.client.service.WebServiceName(_soapheaders={'MessageID': MessageID, 'ExName': ExName, 'Authentication': Authentication},LIST_STOCKS=LIST_STOCKS)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)