I am trying to use python zeep to connect to a soap service ( using wsdl ).
Following is the soap-ui generated XML for an operation.
However I am finding it difficult to identify how to set soap headers. In this case, we have multiple XML elements within the header.
<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.
This is an old question, but I'll leave an answer here for future reference.
It is not that clear from the documentation, but you can just set the elements by setting
_soap_headers
with a dictionary.In the given example:
You would send the headers like this: