Cómo: Generar un cliente que procese encabezados SOAP

Este tema es específico de una tecnología heredada. Ahora, los servicios Web XML y los clientes de servicios Web XML deben crearse con Windows Communication Foundation.

Ejemplo de código

Un cliente de servicios Web puede enviar y recibir encabezados SOAP al comunicarse con un servicio Web. Cuando se genera una clase de proxy para un servicio Web que espera o devuelve encabezados SOAP mediante la utilidad Wsdl.exe, la clase de proxy incluye información sobre los encabezados SOAP. Específicamente, la clase de proxy tiene variables miembro que representan los encabezados SOAP que se relacionan con los buscados en el servicio Web. La clase de proxy también tiene las definiciones para las clases correspondientes que representan el encabezado SOAP. Por ejemplo, las clases de proxy generadas para el servicio Web anterior tendrán una variable miembro de tipo MyHeader y una definición para la clase MyHeader. Para obtener detalles sobre cómo crear una clase de proxy, consulte Crear un proxy de servicio Web XML.

Nota: si el servicio Web define las variables miembro que representan los encabezados SOAP de tipo SoapHeader o SoapUnknownHeader en lugar de una clase que deriva de SoapHeader, ninguna clase de proxy no tendrá ninguna información sobre ese encabezado SOAP.

Para procesar encabezados SOAP dentro de un cliente de servicios Web

  1. Cree una nueva instancia de la clase que representa el encabezado SOAP.

    Dim mySoapHeader As MyHeader = New MyHeader()
    
    MyHeader mySoapHeader = new MyHeader();
    
  2. Rellene los valores para el encabezado SOAP.

    mySoapHeader.Username = UserName
    mySoapHeader.Password = SecurelyStoredPassword
    
    mySoapHeader.Username = Username;
    mySoapHeader.Password = SecurelyStoredPassword
    
  3. Cree una instancia nueva de la clase de proxy

    Dim proxy As MyWebService = New MyWebService()
    
    MyWebService proxy = new MyWebService();
    
  4. Asigne el objeto de encabezado SOAP a la variable miembro de la clase de proxy que representa el encabezado SOAP.

    proxy.MyHeaderValue = mySoapHeader
    
    proxy.MyHeaderValue = mySoapHeader
    
  5. Llame al método en la clase de proxy que se comunica con el método de servicio Web.

    La parte del encabezado SOAP de la solicitud SOAP enviada al servicio Web incluirá el contenido de los datos almacenado en el objeto de encabezado SOAP.

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

Ejemplo

El ejemplo de código siguiente muestra cómo pasar un encabezado SOAP de un cliente a un servicio 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>

Vea también

Referencia

SoapHeader
SoapUnknownHeader
SoapHeaderException

Conceptos

Generar clientes de servicios web XML

Otros recursos

Usar encabezados SOAP
Servicios web XML con ASP.NET