SoapUI 响应 400 错误请求

SoapUI responds with 400 bad request

我需要向 Web 服务发出 post 请求。 Web 服务具有以下结构:

    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:kn="http://..//soapAction">
   <soap:Header/>
   <soap:Body>
    <kn:InsertOrders>
      <!--Optional:-->
      <kn:XmlOrders>?</kn:XmlOrders>
      <kn:stringLength>?</kn:stringLength>
      <!--Optional:-->
      <kn:LoadListId>?</kn:LoadListId>
   </kn:InsertOrders>
 </soap:Body>
</soap:Envelope>

XmlOrders 接受一个字符串,我试图在其中传递以下 xml 字符串:

    <?xml version="1.0" encoding="utf-8"?> <EXAMPLE xmlns="EXAMPLE"> <HEADER> <ID>G112233</ID> <TR>AB123</TR> </HEADER> <HEADER> <ID>G123123</ID> <TR>AB1234</TR> </HEADER> <DETAIL> <DETAILID>123123123</DETAILID> <TXT>ATR_123</TXT> </DETAIL> <DETAIL> <DETAILID>123123123</DETAILID> <TXT>ATR_123</TXT> </DETAIL> </EXAMPLE>

但是,SoapUI returns 400 错误请求:

    Wed May 16 12:41:19 EEST 2018:DEBUG:Receiving response: HTTP/1.1 400 Bad Request
    Wed May 16 12:41:19 EEST 2018:DEBUG:Connection can be kept alive indefinitely

有人知道吗?

是的,您可以将 XML 转换为字符串并将其设置为方法调用。

最终,当 XML 被转换为 String

' is replaced with &apos;

" is replaced with &quot;

& is replaced with &amp;

< is replaced with &lt;

> is replaced with &gt;

参考XML escaping了解更多详情。

您的示例 XML 将变为--

 &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;EXAMPLE xmlns=&quot;EXAMPLE&quot;&gt; &lt;HEADER&gt; &lt;ID&gt;G112233&lt;/ID&gt; &lt;TR&gt;AB123&lt;/TR&gt; &lt;/HEADER&gt; &lt;HEADER&gt; &lt;ID&gt;G123123&lt;/ID&gt; &lt;TR&gt;AB1234&lt;/TR&gt; &lt;/HEADER&gt; &lt;DETAIL&gt; &lt;DETAILID&gt;123123123&lt;/DETAILID&gt; &lt;TXT&gt;ATR_123&lt;/TXT&gt; &lt;/DETAIL&gt; &lt;DETAIL&gt; &lt;DETAILID&gt;123123123&lt;/DETAILID&gt; &lt;TXT&gt;ATR_123&lt;/TXT&gt; &lt;/DETAIL&gt; &lt;/EXAMPLE&gt;

我 post 在这里回答这个问题,因为这解决了我的问题。我将 XML 字符串包裹在里面: "<![CDATA[" + myXMLString + "]]>" 它实际上解析了 XML 字符串而不对其进行编码,或转义字符 > , < , & , ', ".