我在使用一个与之合作的网络服务时遇到了一些问题。我使用.net框架附带的wsdl.exe生成了一个代理类。但该webservice返回一个未被wsdl映射的标头。我必须映射标头sop,因为它包含一些我必须阅读和使用的属性。我怎么读肥皂的标题集?
例:
<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 - &gt;会话。
答案 0 :(得分:0)
你试过这个吗?
来源: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
}
}
答案 1 :(得分:-1)
有关定义自定义SOAP标头的详细说明,请参阅this page。似乎只有VB.net代码示例,但它应该很容易翻译C#中的原则。