c# - 如何从代理类中的 Web 服务响应中读取 http 响应 soap header

标签 c# .net soap wsdl web-services

我在使用一个网络服务时遇到了一些问题。我用 .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/

相关文章:

c# - 如何将客户的 IP 地址转发到 Google Places Autocomplete API

c# - 需要 RegEx 或其他方式来分隔包含转义引号的引用标记

C#——了解泛型类型的基类型

api - Magento API - 从特定类别获取产品名称

node.js - Node-Soap 无法读取未定义的属性 'description'

c# - Visual Studio 2015 - Windows CE 6.0 (Compact Framework 3.5) 编程

.net - 如何在桌面应用程序中使用 Deezer API 的 oAuth 身份验证?

.net - Powershell、PInvoke 和 GetLastError

c# - 正则表达式忽略模式

python - Python SOAP 库线程安全吗?