【问题标题】:soap wrong xml serialization肥皂错误的xml序列化
【发布时间】:2014-07-11 13:25:07
【问题描述】:

我有一个看起来像这样的 wsld 定义

...
<sequence>
    <element name="version" nillable="false" type="xsd:string"/>
    <element name="payment" nillable="false" type="tns1:payment"/>
   ...
</sequence>
...

这是发送请求的 xml 日志

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="http://impl.ws.payline.experian.com" ...>
<SOAP-ENV:Header/>
<ns2:Body>
<ns0:doWebPaymentRequest>
<ns0:version>
    <ns0:version>4</ns0:version>
    <ns0:payment>
        <ns1:amount>33300</ns1:amount>
        ...
    </ns0:payment>
</ns0:version>
...

所以sudspayment 对象包含在version(一个字符串)中,它会中断请求。 这是为什么 ??有什么办法可以解决这个问题?

【问题讨论】:

    标签: python xml soap suds


    【解决方案1】:

    对于那些想知道的人:

    在动态设置对象时,suds 似乎有问题。但它似乎可以很好地发送裸 xml。

    所以我做的是有一个 xml 文件,并用我需要的内容替换其中的一部分,然后发送它

    file: obj.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:ns0="http://impl.ws.payline.experian.com" ...>
     ...
    <xxx>REPLACE_ME</xxx>
    ...
    

    和脚本:

    client = Client(url='file://path/to/.wsdl')
    xml_request = open('/path/to/obj.xml', 'rb').read()
    xml_request = xml_request.replace('REPLACE_ME', value)
    result = client.service.TheService(__inject={'msg': xml_request})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      相关资源
      最近更新 更多