soap错误的xml序列化

2024-09-28 03:21:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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(字符串)中,并中断请求。 这是为什么??有什么办法解决这个问题吗?你知道吗


Tags: nameenvfalseversiontypexmlelementpayment
1条回答
网友
1楼 · 发布于 2024-09-28 03:21:13

对于那些想知道:

当要在飞行中放置物体时,肥皂水似乎有问题。但是对于发送纯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})

相关问题 更多 >

    热门问题