我有一个请求数据,其中一个元素将xml作为值。在使用 @Body 将数据发送到服务器时,我的内部xml正在编码(html编码)。由于此服务在服务器端失败。如何禁用内部 xml编码。
样品:
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/soap/envelope/">
<soap12:Body>
<UpdateASN xmlns="http://tempuri.org/">
<SecureCode>VkdWelkyOUJVMDQ9</SecureCode>
<strXML><![CDATA[<?xml version="1.0" encoding="utf-8"?><NewDataSet><Table><ASNId>21131248</ASNId><ASNLineId>108069195</ASNLineId><EANOCC>5051622303470</EANOCC><TUQuantityRecevied>2</TUQuantityRecevied><ItemDescription>sample 6X300ML</ItemDescription><TUSize>6</TUSize><TUDespatched>1</TUDespatched></Table></NewDataSet>]]></strXML>
</UpdateASN>
</soap12:Body>
</soap12:Envelope>
答案 0 :(得分:1)
我自己找到了。
以下是我正在做的事情,我已经删除了封闭CDATA
内的内部xml,以便在服务器端可以在处理之前对内部xml进行解码和解码。
如果我们将内部xml与CDATA
括起来,它将不会对字符串进行解码,并使服务失败。
这是我的最终要求:
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/soap/envelope/">
<soap12:Body>
<UpdateASN xmlns="http://tempuri.org/">
<SecureCode>VkdWelkyOUJVMDQ9</SecureCode>
<strXML><?xml version="1.0" encoding="utf-8"?><NewDataSet><Table><ASNId>21131248</ASNId><ASNLineId>108069195</ASNLineId><EANOCC>5051622303470</EANOCC><TUQuantityRecevied>2</TUQuantityRecevied><ItemDescription>sample 6X300ML</ItemDescription><TUSize>6</TUSize><TUDespatched>1</TUDespatched></Table></NewDataSet></strXML>
</UpdateASN>
</soap12:Body>
</soap12:Envelope>