在Suds python中覆盖Soap Envelope

chr*_*ley 6 python xml soap suds envelope

我有一个相机,我正试图连接它与泡沫.我试图发送原始的xml,并发现阻止xml suds工作的唯一因素是不正确的Soap信封命名空间.

信封命名空间是:

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

我想把它重写为:

xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"

为了在python中添加命名空间,我尝试以下代码:

message = Element('Element_name').addPrefix(p='SOAP-ENC', u='www.w3.org/ENC')

但是当我添加SOAP-ENV到命名空间时,它不会写,因为它被硬编码到suds绑定中.有没有办法在泡沫中覆盖这个?

谢谢你的帮助.

xto*_*ofl 5

我通过手动覆盖模块中的suds.binding.envns变量来解决它bindings:

from suds.bindings import binding
binding.envns=('SOAP-ENV', 'http://www.w3.org/2003/05/soap-envelope')
Run Code Online (Sandbox Code Playgroud)

从这里开始,一切顺利(我的服务,即)


chr*_*ley 3

我设法让它工作,肥皂信封被硬编码到bindings.py存储在suds.egg安装在您的站点包中。我将 SOAP 信封地址更改为http://www.w3.org/2003/05/soap-envelope. 这与我的相机兼容。我无法找到用肥皂水覆盖这个信封的命令,所以我将它硬编码到 bindings.py 中。

谢谢你的帮助