如何使用Postman将参数作为XML字符串发布

时间:2018-04-12 09:35:54

标签: xml post postman

我想使用postman将xml发布到web服务。 下面是原始体xml。 参数“xml”是我想要传递的字符串值,但是,由于语法错误,请求状态返回400。我怀疑是因为参数值被格式化为xml。

在我的实际应用程序中,一切正常,如果我想使用postman进行测试,我就无法使用它。

如何将此参数作为字符串发送?

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
  <SaveLead xmlns="http://tempuri.org/">
    <xml>
     <enquiry><Lead Ref='1234' Source='SourceDesc'><Contact FirstName='TestN' Surname='TestS' Email='testn@test.co.za' Mobile='0830000000' /></Lead></enquiry>
    </xml>
  </SaveLead>
</soap:Body>
</soap:Envelope>

webservice soap请求的示例

POST /webservice1.asmx HTTP/1.1
Host: xxxxx
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/SaveLead"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SaveLead xmlns="http://tempuri.org/">
  <xml>string</xml>
</SaveLead>
</soap:Body>
</soap:Envelope>

1 个答案:

答案 0 :(得分:2)

根据Danny上面的评论,使用CDATA部分转义XML字符串解决了这个问题。

  

定义:CDATA部分可能出现在可能出现字符数据的任何地方;它们用于转义包含字符的文本块,否则这些字符将被识别为标记。 CDATA部分以字符串<![CDATA[ " and end with the string " ]]>

开头
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
  <SaveLead xmlns="http://tempuri.org/">
    <xml>
    <![CDATA[  <enquiry><Lead Ref='1234' Source='SourceDesc'><Contact FirstName='TestN' Surname='TestS' Email='testn@test.co.za' Mobile='0830000000' /></Lead></enquiry> ]]> 
    </xml>
  </SaveLead>
</soap:Body>
</soap:Envelope>