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

  1. 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();
    
  2. Remplissez les valeurs pour l'en-tête SOAP.

    mySoapHeader.Username = UserName
    mySoapHeader.Password = SecurelyStoredPassword
    
    mySoapHeader.Username = Username;
    mySoapHeader.Password = SecurelyStoredPassword
    
  3. Créez une instance de la classe proxy.

    Dim proxy As MyWebService = New MyWebService()
    
    MyWebService proxy = new MyWebService();
    
  4. 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
    
  5. 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