次の方法で共有


方法 : SOAP ヘッダーを処理するクライアントを構築する

コード例

Web サービス クライアントは、Web サービスとの通信時に SOAP ヘッダーを送受信できます。Wsdl.exe ユーティリティを使用して、SOAP ヘッダーを要求したり返したりする Web サービス用のプロキシ クラスを生成すると、そのプロキシ クラスには該当する SOAP ヘッダーに関する情報が含まれます。具体的には、プロキシ クラスには SOAP ヘッダーを表すメンバ変数があり、それらは Web サービスで使用される SOAP ヘッダーと相互に関連付けられています。また、プロキシ クラスには、それに対応する SOAP ヘッダーを表すクラスの定義も含まれます。たとえば、前述の Web サービスに対して生成されるプロキシ クラスには、MyHeader 型のメンバ変数と MyHeader クラスの定義が含まれます。プロキシ クラス作成の詳細については、「XML Web サービス プロキシの作成」を参照してください。

メモ: Web サービスで、SoapHeader から派生するクラスではなく、SoapHeader 型または SoapUnknownHeader 型の SOAP ヘッダーを表すメンバ変数を定義する場合、プロキシ クラスにはその 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();
    

SOAP ヘッダーをクライアントから Web サービスに渡す方法を次のコード例に示します。

<%@ 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 サービス クライアントの作成

その他の技術情報

SOAP ヘッダーの使用
ASP.NET を使用した XML Web サービス

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.