如何:生成处理 SOAP 标头的客户端

代码示例

Web 服务客户端在与 Web 服务进行通信时可以发送和接收 SOAP 标头。 当使用 Wsdl.exe 实用工具为期望收到或要返回 SOAP 标头的 Web 服务生成代理类时,该代理类将包括有关 SOAP 标头的信息。 具体而言,该代理类中的一些成员变量将表示与 Web 服务中的 SOAP 标头相关的 SOAP 标头。 此外,该代理类还包含表示 SOAP 标头的相应类的定义。 例如,为上述 Web 服务生成的代理类将包含 MyHeader 类型的成员变量以及 MyHeader 类的定义。 有关创建代理类的详细信息,请参见创建 XML Web services 代理

注意:如果 Web 服务定义了表示 SoapHeaderSoapUnknownHeader 类型的 SOAP 标头的成员变量,而不是从 SoapHeader 派生的类,则代理类将不具有有关该 SOAP 标头的任何信息。

在 Web 服务客户端内处理 SOAP 标头

  1. 为表示 SOAP 标头的类创建一个新实例。

    Dim mySoapHeader As MyHeader = New MyHeader()
    
    MyHeader mySoapHeader = new MyHeader();
    
  2. 填充 SOAP 标头的值。

    mySoapHeader.Username = UserName
    mySoapHeader.Password = SecurelyStoredPassword
    
    mySoapHeader.Username = Username;
    mySoapHeader.Password = SecurelyStoredPassword
    
  3. 为代理类创建一个新实例。

    Dim proxy As MyWebService = New MyWebService()
    
    MyWebService proxy = new MyWebService();
    
  4. 将 SOAP 标头对象分配给表示 SOAP 标头的代理类的成员变量。

    proxy.MyHeaderValue = mySoapHeader
    
    proxy.MyHeaderValue = mySoapHeader
    
  5. 对代理类调用与 Web 服务方法进行通信的方法。

    在发送给 Web 服务的 SOAP 请求中,SOAP 标头部分将包括 SOAP 标头对象中存储的数据内容。

    Dim results as String = proxy.MyWebMethod()
    
    string results = proxy.MyWebMethod();
    

示例

下面的代码示例演示如何从客户端向 Web 服务传递 SOAP 标头。

<%@ Page Language="VB" %>

<asp:Label id="ReturnValue" runat="server" />
<script runat=server language=VB>

 Sub Page_Load(o As Object, e As EventArgs)

  Dim mySoapHeader As MyHeader = New MyHeader()  ' Populate the values of the SOAP header.  mySoapHeader.Username = UserName  mySoapHeader.Password = SecurelyStoredPassword

  ' Create a new instance of the proxy class.
  Dim proxy As MyWebService = New MyWebService()
  
  ' Add the MyHeader SOAP header to the SOAP request.  proxy.MyHeaderValue = mySoapHeader

  ' Call the method on proxy class that communicates with
  ' your Web service method.
  Dim results as String = proxy.MyWebMethod()

  ' Display the results of the method in a label.
  ReturnValue.Text = results

 End Sub
</script>
<%@ Page Language="C#" %>

<asp:Label id="ReturnValue" runat="server" />
<script runat=server language=c#>

 void Page_Load(Object o, EventArgs e)
 {

  MyHeader mySoapHeader = new MyHeader();  // Populate the values of the SOAP header.  mySoapHeader.Username = Username;  mySoapHeader.Password = SecurelyStoredPassword;

  // Create a new instance of the proxy class.
  MyWebService proxy = new MyWebService();
  
  // Add the MyHeader SOAP header to the SOAP request.  proxy.MyHeaderValue = mySoapHeader;

  // Call the method on the proxy class that communicates with
  // your Web service method.
  string results = proxy.MyWebMethod();

  // Display the results of the method in a label.
  ReturnValue.Text = results;
 }
</script>

请参见

参考

SoapHeader
SoapUnknownHeader
SoapHeaderException

概念

生成 XML Web services 客户端

其他资源

使用 SOAP 标头
使用 ASP.NET 的 XML Web services

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。