【发布时间】: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