I have a camera and I am trying to connect to it vis suds. I have tried to send raw xml and have found that the only thing stopping the xml suds from working is an incorrect Soap envelope namespace.
The envelope namespace is:
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
and I want to rewrite it to:
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
In order to add a namespace in python I try this code:
message = Element('Element_name').addPrefix(p='SOAP-ENC', u='www.w3.org/ENC')
But when I add the SOAP-ENV
to the namespace it doesn't write as it is hardcoded into the suds bindings. Is there a way to overwrite this in suds?
Thanks for any help.
Manually updating
binding.py
definitely isn't the right way to go. You should be able to utilize theImportDoctor
to override your default bindings. Have a look at the documentation for fixing broken schemas on the Suds website.Also, what versions of Python and suds are you using?
I got around it by manually overriding the
suds.binding.envns
variable in thebindings
module:From here on, all goes well (with my service, that is)
I managed to get this working, the soap envelope is hard coded into
bindings.py
that is stored insuds.egg
installed in your site-packages. I changed the SOAP envelope address tohttp://www.w3.org/2003/05/soap-envelope
. This was compatible with my camera. I was unable to find a command to overwrite this envelope in suds so I hard coded it in to the bindings.py.Thanks for any help