Comment : générer un client qui traite des en-têtes SOAP
Cette rubrique est spécifique à une technologie existante. Les services Web XML et les clients du service Web XML doivent à présent être créés à l'aide de Windows Communication Foundation.
Exemple de code
Un client de services du Web peut envoyer et recevoir des en-têtes SOAP lorsqu'il communique avec un service Web. Lorsqu'une classe proxy est générée pour un service Web qui attend ou retourne des en-têtes SOAP à l'aide de l'utilitaire Wsdl.exe, la classe proxy inclut des informations à propos des en-têtes SOAP. Plus précisément, la classe proxy a des variables membre qui représentent les en-têtes SOAP correspondant à ceux recherchées dans le service Web. La classe proxy a également des définitions pour les classes correspondantes qui représentent l'en-tête SOAP. Par exemple, les classes proxy générées pour le service Web précédent auront une variable membre de type MyHeader
et une définition pour la classe MyHeader
. Pour plus d'informations sur la création d'une classe proxy, consultez Création d'un proxy de service Web XML.
Remarque : si le service Web définit les variables membre représentant les en-têtes SOAP de type SoapHeader ou SoapUnknownHeader au lieu d'une classe dérivant de SoapHeader, une classe proxy n'aura pas d'informations à propos de cet en-tête SOAP.
Pour traiter des en-têtes SOAP dans un client de service Web
Créez une nouvelle instance de la classe représentant l'en-tête SOAP.
Dim mySoapHeader As MyHeader = New MyHeader()
MyHeader mySoapHeader = new MyHeader();
Remplissez les valeurs pour l'en-tête SOAP.
mySoapHeader.Username = UserName mySoapHeader.Password = SecurelyStoredPassword
mySoapHeader.Username = Username; mySoapHeader.Password = SecurelyStoredPassword
Créez une instance de la classe proxy.
Dim proxy As MyWebService = New MyWebService()
MyWebService proxy = new MyWebService();
Assignez l'objet d'en-tête SOAP à la variable membre de la classe proxy représentant l'en-tête SOAP.
proxy.MyHeaderValue = mySoapHeader
proxy.MyHeaderValue = mySoapHeader
Appelez la méthode sur la classe proxy qui communique avec la méthode de service Web.
La partie d'en-tête SOAP de la demande SOAP envoyée au service Web inclura le contenu des données stocké dans l'objet d'en-tête SOAP.
Dim results as String = proxy.MyWebMethod()
string results = proxy.MyWebMethod();
Exemple
L'exemple de code suivant montre comment passer un en-tête SOAP d'un client à un service 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>
Voir aussi
Référence
SoapHeader
SoapUnknownHeader
SoapHeaderException
Concepts
Création de clients de service Web XML
Autres ressources
Utilisation d'en-têtes SOAP
Services Web XML utilisant ASP.NET