Condividi tramite


Procedura: compilare un client per l’elaborazione di intestazioni SOAP

Questo argomento è specifico di una tecnologia legacy. Servizi Web XML e client di servizi Web XML devono essere creati attualmente tramite Windows Communication Foundation.

Esempio di codice

Durante la comunicazione con un servizio Web, un client del servizio Web può inviare e ricevere intestazioni SOAP. Quando viene generata una classe proxy per un servizio Web in fase di attesa o di restituzione di intestazioni SOAP mediante l'utilità Wsdl.exe, la classe proxy include informazioni relative alle intestazioni SOAP. Nello specifico, la classe proxy dispone di variabili membro corrispondenti alle intestazioni SOAP correlate alle intestazioni contenute nel servizio Web. Nella classe sono inoltre presenti definizioni per le classi corrispondenti che rappresentano l'intestazione SOAP. Ad esempio, le classi proxy generate per il precedente servizio Web avranno una variabile membro di tipo MyHeader e una definizione per la classe MyHeader. Per ulteriori informazioni sulla creazione di una classe proxy, vedere Creazione di un proxy del servizio Web XML.

Nota: se le variabili membro che rappresentano le intestazioni SOAP di tipo SoapHeader o SoapUnknownHeader anziché una classe derivante da SoapHeadersono definite nel Servizio Web, una classe proxy non avrà nessuna informazione disponibile sull'intestazione SOAP.

Per elaborare intestazioni SOAP all'interno di un client del servizio Web

  1. Creare una nuova istanza classe che rappresenta l'intestazione SOAP.

    Dim mySoapHeader As MyHeader = New MyHeader()
    
    MyHeader mySoapHeader = new MyHeader();
    
  2. Popolare i valori per l'intestazione SOAP.

    mySoapHeader.Username = UserName
    mySoapHeader.Password = SecurelyStoredPassword
    
    mySoapHeader.Username = Username;
    mySoapHeader.Password = SecurelyStoredPassword
    
  3. Creare una nuova istanza della classe proxy.

    Dim proxy As MyWebService = New MyWebService()
    
    MyWebService proxy = new MyWebService();
    
  4. Assegnare l’oggetto dell’intestazione SOAP alla variabile membro della classe proxy che rappresenta l'intestazione SOAP.

    proxy.MyHeaderValue = mySoapHeader
    
    proxy.MyHeaderValue = mySoapHeader
    
  5. Eseguire la chiamata al metodo nella classe proxy che comunica con il metodo del servizio Web.

    La porzione di intestazione SOAP della richiesta SOAP inviata al servizio Web includerà il contenuto dei dati archiviati nell'oggetto dell'intestazione SOAP.

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

Esempio

Nell'esempio di codice seguente è illustrato come passare un'intestazione SOAP da un client a un servizio 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>

Vedere anche

Riferimento

SoapHeader
SoapUnknownHeader
SoapHeaderException

Concetti

Compilazione di client dei servizi Web XML

Altre risorse

Utilizzo delle intestazioni SOAP
Creare servizi Web XML mediante ASP.NET