【问题标题】:What is the correct format of a SOAP responseSOAP 响应的正确格式是什么
【发布时间】:2014-06-04 17:08:51
【问题描述】:

我正在使用一个不是我创建的 Web 服务,我从同一个方法得到两个不同的响应,数据相同,但格式发生了变化,导致我的应用程序崩溃

响应 1:

<SOAP-ENV:Envelope xmlns:SOAP-ENV=...>
<SOAP-ENV:Body SOAP-ENV:encodingStyle="..." xmlns:NS1="..." xmlns:NS2="...">
  <NS1:...>
<return href="#1"/>
  </NS1:...>
<NS2:..." xsi:type="NS2:...">    
</NS2:...>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

响应 2:

<SOAP-ENV:Envelope xmlns:SOAP-ENV=...>
<SOAP-ENV:Body SOAP-ENV:encodingStyle="..." xmlns:NS1="..." xmlns:NS2="...">
<NS1:...>    
<NS2:..." xsi:type="NS2:...">    
</NS2:...>
<return href="#1"/>
</NS1:...>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

唯一的区别是这几行

<return href="#1"/>
</NS1:...> 

当我得到第二个时,我无法读取数据,所以我的问题是:第二种方式错了吗?

编辑:

这是我收到的错误消息

System.Web.Services.Protocols.SoapException: El servidor no puede procesar la       
solicitud.
---> System.InvalidOperationException: Error en el documento XML (2, 3726). --->   
System.InvalidOperationException: No se encontró en el documento el elemento con id '2' 
al que se hace referencia.
en System.Xml.Serialization.XmlSerializationReader.GetTarget(String id)
en System.Xml.Serialization.XmlSerializationReader.FixupArrayRefs(Object fixup)
en System.Xml.Serialization.XmlSerializationReader.DoFixups()
en System.Xml.Serialization.XmlSerializationReader.ReadReferencedElements()

它说“找不到 id 为 2 的元素”

第二个响应是因为UTF8InHeader = TRUE 无论如何我很好奇它是否是一个有效的肥皂响应

【问题讨论】:

  • 您使用的是什么库,遇到了什么错误?如果您包含完整的 SOAP 输出,它也会有所帮助。
  • 我已经添加了我得到的错误,但我的问题是第二种响应格式是否正确或可接受。正如您在第一个中看到的那样,结构是 而另一个是

标签: xml web-services soap soapui


【解决方案1】:

您的答案将在此服务的 WSDL 中。那就是与外界的“契约”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    相关资源
    最近更新 更多