Share via


Vorgehensweise: Erstellen eines Clients, der SOAP-Header verarbeitet

Dieses Thema bezieht sich auf eine veraltete Technologie. XML-Webdienste und XML-Webdienstclients sollten nun mithilfe der folgenden Technologie erstellt werden: Windows Communication Foundation.

Codebeispiel

Ein Webdienstclient kann bei der Kommunikation mit einem Webdienst SOAP-Header senden und empfangen. Wenn eine Proxyklasse für einen Webdienst, der SOAP-Header erwartet oder zurückgibt, mithilfe des Hilfsprogramms Wsdl.exe generiert wird, enthält die Proxyklasse Informationen über die SOAP-Header. Insbesondere verfügt die Proxyklasse über Membervariablen, die die SOAP-Header darstellen, die denen im Webdienst entsprechen. Die Proxyklasse weist auch Definitionen für die entsprechenden Klassen auf, die den SOAP-Header darstellen. So besitzen z. B. Proxyklassen, die für den vorhergehenden Webdienst generiert wurden, eine Membervariable des Typs MyHeader und eine Definition für die MyHeader-Klasse. Einzelheiten über das Erstellen einer Proxyklasse finden Sie unter Erstellen eines XML-Webdienstproxys.

Hinweis: Wenn der Webdienst die Membervariablen, die die SOAP-Header des Typs SoapHeader oder SoapUnknownHeader darstellen, anstelle einer von SoapHeader abgeleiteten Klasse definiert, besitzt die Proxyklasse keine Informationen über diesen SOAP-Header.

So verarbeiten Sie SOAP-Header innerhalb eines Webdienstclients

  1. Erstellen Sie eine neue Instanz der Klasse, die den SOAP-Header darstellt.

    Dim mySoapHeader As MyHeader = New MyHeader()
    
    MyHeader mySoapHeader = new MyHeader();
    
  2. Füllen Sie die Werte für den SOAP-Header.

    mySoapHeader.Username = UserName
    mySoapHeader.Password = SecurelyStoredPassword
    
    mySoapHeader.Username = Username;
    mySoapHeader.Password = SecurelyStoredPassword
    
  3. Erstellen Sie eine neue Instanz der Proxyklasse.

    Dim proxy As MyWebService = New MyWebService()
    
    MyWebService proxy = new MyWebService();
    
  4. Weisen Sie der Membervariable der Proxyklasse, die den SOAP-Header darstellt, das SOAP-Headerobjekt zu.

    proxy.MyHeaderValue = mySoapHeader
    
    proxy.MyHeaderValue = mySoapHeader
    
  5. Rufen Sie die Methode an der Proxyklasse auf, die mit der Webdienstmethode kommuniziert.

    Der SOAP-Headerabschnitt der SOAP-Anforderung, der an den Webdienst gesendet wird, enthält den Inhalt der im SOAP-Headerobjekt gespeicherten Daten.

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

Beispiel

Das folgende Codebeispiel zeigt, wie ein SOAP-Header von einem Client an einen Webdienst übergeben wird.

<%@ 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>

Siehe auch

Verweis

SoapHeader
SoapUnknownHeader
SoapHeaderException

Konzepte

Erstellen von XML-Webdienstclients

Weitere Ressourcen

Verwenden von SOAP-Headern
XML-Webdienste, die ASP.NET verwenden