SOAP headers¶
SOAP headers are generally used for things like authentication. The header
elements can be passed to all operations using the _soapheaders
kwarg.
There are multiple ways to pass a value to the soapheader.
When the SOAP header expects a complex type you can either pass a dict or an object created via the
client.get_element()
method.When the header expects a simple type value you can pass it directly to the
_soapheaders
kwarg. (e.g.:client.service.Method(_soapheaders=1234)
)Creating custom xsd element objects. For example:
from zeep import xsd header = xsd.Element( '{http://test.python-zeep.org}auth', xsd.ComplexType([ xsd.Element( '{http://test.python-zeep.org}username', xsd.String()), ]) ) header_value = header(username='mvantellingen') client.service.Method(_soapheaders=[header_value])
Another option is to pass an lxml Element object. This is generally useful if the wsdl doesn’t define a soap header but the server does expect it.