我认为我要尝试的操作几乎类似于github issue in zeep repo ---但可惜的是对此问题尚无任何回应。我研究了 SOAP 泡沫并安装并尝试了-甚至没有使发送参数起作用并且认为zeep似乎可以更好地维护?

编辑1:
当然,我不是在谈论this

最佳答案

您可以使用插件将xml编辑为纯字符串。我使用此插件将字符“”保留在CDATA元素中。

from xml import etree
from zeep import Plugin

class my_plugin(Plugin):

    def egress(self, envelope, http_headers, operation, binding_options):
        xml_string = etree.ElementTree.tostring(envelope)
        xml_string = xml_string.replace("&lt;", "<")
        xml_string = xml_string.replace("&gt;", ">")
        parser = etree.ElementTree.XMLParser(strip_cdata=False)
        new_envelope = etree.ElementTree.XML(xml_string, parser=parser)
        return new_envelope, http_headers

然后只需在客户端上导入插件:
client = Client(wsdl='url', transport=transport, plugins=[my_plugin()])

看一下文档:http://docs.python-zeep.org/en/master/plugins.html

关于python - python zeep : send un-escaped xml as content,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48655638/

10-13 08:00