【发布时间】:2014-11-10 20:24:19
【问题描述】:
我想从 soap header 和 SOAP Body 中读取元素值。请查看下面的代码并帮助我获取 custid 和 clientid 表单标题和正文。如果您需要任何进一步的说明,请发帖给我
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<APHeader xmlns="http://www.test.com/es/v1/ws">
<usr>
<Verb>Set</Verb>
<Noun>ProcessEIACMPermissions</Noun>
<DataVer>001:000</DataVer>
<SrcAppID xsi:type="xsd:string">AP</SrcAppID>
<CustID>30081241</CustID>
<APMsgCorrelationID>00000000000000000000000000000000</APMsgCorrelationID>
</usr>
</APHeader>
</soap:Header>
<soap:Body>
<ProcessEIACMPermissionsRequest xmlns="http://www.adp.com/es/ezlm/v1/schema/tlmclientconfiguration">
<ClientID>30081241</ClientID>
</ProcessEIACMPermissionsRequest>
</soap:Body>
【问题讨论】:
-
您有什么理由在 SOAP 消息的 XML 中摆弄而不是使用工具包 (WebServices) 的对象模型?
-
这是我从客户端收到的这种格式的请求。我别无选择
-
当然,您可以选择如何使用 SOAP 消息。您可以使用 X(ml)Document 并采用硬核方式,可以使用 WCF 通道/服务层,可以使用 XmlSerializer、DataContractSerializer、SoapFormatter。这么多选择。为什么客户端首先向您发送 SOAP?网页服务!使用 WebServices 工具包! (用于 Asp.Net 的 WCF 或 WebAPI)
-
感谢马文的建议。您能帮我了解我可以使用哪种最简单的方法来读取 SOAP 标头和 Body 元素,例如 custID 值 Client ID 值。请根据我发送的上述文件发送一些示例。
-
设置一个 web 服务(我会选择 WCF),它接受来自客户的消息类型(暴露一个端点),然后使用 WS 实现中的对象模型来访问消息的属性(伪:Msg.Headers[x].ClientID)