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
Erstellen Sie eine neue Instanz der Klasse, die den SOAP-Header darstellt.
Dim mySoapHeader As MyHeader = New MyHeader()
MyHeader mySoapHeader = new MyHeader();
Füllen Sie die Werte für den SOAP-Header.
mySoapHeader.Username = UserName mySoapHeader.Password = SecurelyStoredPassword
mySoapHeader.Username = Username; mySoapHeader.Password = SecurelyStoredPassword
Erstellen Sie eine neue Instanz der Proxyklasse.
Dim proxy As MyWebService = New MyWebService()
MyWebService proxy = new MyWebService();
Weisen Sie der Membervariable der Proxyklasse, die den SOAP-Header darstellt, das SOAP-Headerobjekt zu.
proxy.MyHeaderValue = mySoapHeader
proxy.MyHeaderValue = mySoapHeader
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