Consumir servicio web con Microsoft ASP.NET C# desde un WSDL

5.1.09. Por ooscarr (ooscarr)

Visual C#

Me pidieron que consumiera el servicio web que creé anteriormente en java pero con ASP.NET. Así que en este post mostraré cómo consumí el servicio web a partir del WSDL utilizando las herramientas oficiales de Microsoft® para Windows®.

Preparativos

Primero, obtenemos la ruta web al WSDL (en este caso, http://localhost:8080/Holaste/HolasteService?WSDL) y nos aseguramos que esté funcionando.

Nuevo sitio web

Después, abrir el Visual (en este caso, Microsoft® Visual Web Developer 2008 Express Edition, es gratis) y crear un Nuevo sitio web ASP.NET en Visual C#.

Nuevo sitio web C# en Microsoft Visual Web Developer 2008 Express Edition
Se creará un archivo Default.aspx.

Ahora vamos al menú Sitio web > Agregar referencia web..., y pegamos la dirección del WSDL.

Agregando WSDL en Microsoft Visual Web Developer 2008 Express Edition

Cuando aparezca el servicio, le ponemos un Nombre de referencia web, por ejemplo, localhost.

Poniendo nombre de referencia web al servicio en Microsoft Visual Web Developer 2008 Express Edition

De modo que quede en el Explorador de soluciones, más o menos así:

Captura de pantalla del Explorador de Soluciones del proyecto con el servicio web en App_WebREferences/localhost/HolasteService.discomap/

Código

El código, que pone un simple formulario y consume el servicio quedaría como sigue:

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<script runat="Server">
void Page_Load (object sender, EventArgs e) {
 
 // Crea el servicio
 localhost.HolasteService Servicio1 = new localhost.HolasteService();

    //Obtiene el nombre del formulario
    String nombre = Servicio1.diHola(CampoNombre.Text); 

 // Muestra el nombre, si obtiene alguno
    if (nombre == null || nombre == "Hola, ")
  Label1.Text = "[No se ingresó nombre]";
 else 
  Label1.Text = nombre;
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es-cl" lang="es-cl" dir="ltr">
<head>
 <title>Holaste</title>
 <meta http-equiv="content-type" content="application/xhtml+xml;charset=UTF-8" />
</head>
<body>
    <h1>Holaste</h1>
    <p>Este programa consume el servicio <a href="http://www.ooscarr.com/nerd/elblog/2008/12/crear-un-simple-servicio-web-en.php">Holaste</a>.</p>
    <h2>HolasteService</h2>
    <form id="form1" runat="server" method="post">
        <p><label for="CampoNombre">Nombre:</label>
            <asp:TextBox id="CampoNombre" runat="server"/></p>
        <p><button id="Submit" type="submit" runat="server">Enviar</button></p>
        
        <h3>Respuesta</h3>
        <p><strong style="text-decoration:blink;"><asp:Label id="Label1" runat="server"></asp:Label></strong></p>
    </form>
</body>
</html>

Resultado

Finalmente lo ejecutamos, y debería aparecer algo parecido a esto:

ver referencia de resultado.
* La página es sólo de referencia. No sirve.

Artículos relacionados

Etiquetas: , , ,

2 comentarios (RSS ATOM) :

  1. A las 16/2/09 20:04  

    Blogger Marcos ha dicho...

    Hola, de pura casualidad, se podrías saber como es tu XML de entrada a tu WS?

  2. A las 16/2/09 23:01  

    OpenID elblog ha dicho...

Página principal

Publicidad