我在使用一个网络服务时遇到了一些问题。我用 .net 框架自带的 wsdl.exe 生成了一个代理类。但是该 web 服务返回一个未被 wsdl 映射的 header 。我必须映射标题 sop,因为它包含一些我必须阅读和使用的属性。我如何阅读 soap 的标题集合?
例如:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns="http://xml.amadeus.com/ws/2009/01/WBS_Session-2.0.xsd">
<Session>
<SessionId>545784545</SessionId>
<SequenceNumber>1</SequenceNumber>
<SecurityToken>asd7a87sda89sd45as4d5a4</SecurityToken>
</Session>
</soap:Header>
<soap:Body>
<TAM_Altea_Seguranca_AutenticarRS xmlns="http://xml.amadeus.com/2009/04/TAM/TAM_Altea_Seguranca_AutenticarRS_2.0">
<statusDoProcesso>
<codigoDoStatus>P</codigoDoStatus>
</statusDoProcesso>
</TAM_Altea_Seguranca_AutenticarRS>
</soap:Body>
</soap:Envelope>
我需要阅读 SOAP:HEADER -> Session。
最佳答案
你试过吗?
来源:Handle SOAP Headers Required by an XML Web Service Client
public class MyWebService
{
public SoapUnknownHeader[] unknownHeaders;
[WebMethod]
[SoapHeader("unknownHeaders")]
public string MyWebMethod()
{
foreach (SoapUnknownHeader header in unknownHeaders)
{
// process headers
}
// handle request
}
}
关于c# - 如何从代理类中的 Web 服务响应中读取 http 响应 soap header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2761052/