You are on page 1of 4

A continuacin explico brevemente un cdigo de ejemplo que nos permitira enviar datos parametrizados a un servicio web a

travs de los GET y POST METHODs.


Esta claro que las operaciones a continuacin podrian haberse implementado de otra forma, ms eficientes y seguras, pero dado
el caracter didctico de este tutorial espero que de esta manera quede ms claro qu es lo que estamos haciendo. Es posible que
los ejemplos no compilen o funcionen correctamente ya que los he escrito "al vuelo" pero si es as poneos en contacto conmigo
y lo arreglar lo antes posible.
Si no veis bien el cdigo (son imgenes y se salen por la derecha) haced click derecho en ellas y dadle a "abrir en pestaa
nueva" o similiar, dependiendo de vuestro navegador; no las hago ms pequeas porque no se podran leer bien.
Envo de parametros
Mtodo GET
Estamos acostumbrados a pasar parametros entre pginas de un mismo sitio web, pero a veces debemos pasar parametros desde
el cdigo, por ejemplo desde una libreria de clases escrita en C#, a un servicio web alojado en un servidor remoto. Este cdigo
implementa un mtodo que servira para enviar parametros a dicho servicio:
Mtodo POST
Igual que en el caso del mtodo GET, a menudo enviamos y recibimos datos de nuestros formularios en una aplicacin web
mediante POST, pero a veces necesitamos enviar datos por POST METHOD a una pgina web que no forma parte de nuestro
sitio (no forma parte de nuestra aplicacin web), que es un servicio web externo, o no queremos utilizar un Formulario de
HTML para enviar los datos.
mediante POST, pero a veces necesitamos enviar datos por POST METHOD a una pgina web que no forma parte de nuestro
sitio (no forma parte de nuestra aplicacin web), que es un servicio web externo, o no queremos utilizar un Formulario de
HTML para enviar los datos.
A continuacin se muestra el mismo caso que hemos visto en el mtodo GET, pero enviando los datos por POST.
Ejemplos
Los comentarios permiten identificar fcilmente que operaciones se estan realizando, pero para dejar ms claro como se usara
dejo a continuacin un ejemplo de llamada a este mtodo, donde estamos enviando al servidor remoto datos de una persona. Por
supuesto en este ejemplo se asume que el servicio externo est esperando recibir un parametro 'nombre' y un parametro 'edad'.
Recibir los parametros - Del lado del Servicio Web
En la mayoria de los casos somos clientes de un Servicio Web, por lo que basta con saber enviar los parametros procesar la
respuesta del servicio para consumir los recursos que el Servicio nos proporciona. Sin embargo podemos necesitar implementar
un Servicio Web que atienda peticiones GET y POST, o tal vez sintamos simple curiosidad por saber como est recuperando la
informacin que le hemos pasado.
Por regla general, cuando nos comunicamos con un Servicio Web, este nos habilita un punto de acceso, y define un API REST
al que accedemos empleando el protocolo HTTP; este API consigue que todos "hablemos el mismo idioma" por lo que resulta
transparente para nosotros el servidor o el lenguaje en el que est programado el Servicio Web. Sin embargo, si somos nosotros
quienes debemos implementarlo est claro que no es as.
Dado que me he propuesto que en mi Distineo todos mis ejemplos estn en C#.Net, vamos a imaginarnos que es el lenguaje que
usamos para crear nuestro Servicio Web.
Si estuviesemos empleando MVC para generar el Servicio Web (opcin que recomiendo encarecidamente por las facilidades
que nos proporciona el contexto del controlador y el Model Binder para crear un API slido y flexible) sera muy facil obtener
los parametros de las solicitudes de las aplicaciones cliente, pues estas se transforman de forma "automtica" en los parametros
de nuestras Acciones del controlador.
Para complicar un poco ms el ejemplo y hacerlo ms completo voy a escribir el cdigo suponiendo que no estamos utilizando
MVC, sino ASP .NET WebForms.
En el caso de WebForms, para escuchar las solicitudes de nuestros clientes, bastara con crear una pgina .aspx y escribir en el
code behind, en el evento Load(), la lgica que deba realizar dicha operacin.
Sin embargo, el mtodo apropiado no es hacer una pgina web, sino un Handler .ashx. Estos manejadores se parecen mucho a
una pgina, pero no tienen una interfaz de usuario, y se procesan mucho ms deprisa. Por otro lado, exigen un mayor
conocimiento de la plataforma .Net y realizar algun retoque a la seccin Handlers del web.config.
Esto dara para otro tutorial, as que vamos al grano, pues sea cual sea el mtodo elegido dispondremos del Context de la pgina
actual y podremos utilizarlo para procesar los parametros.
Mtodo GET
Para obtener los parametros recibidos por GET y realizar una tarea, bastara con utilizar un mtodo como ste:
Si nos fijamos, estamos esperando recibir un parametro con un valor entero 'edad' y un parametro de cadena de texto 'nombre',
para que coincida con el ejemplo de envo de parmetros que veamos ms arriba.
Mtodo POST
Si hemos recibido los parmetros por POST, el cdigo equivalente se parece mucho al anterior, y sera ste:
Y esto es todo, espero que os sirva de gua y que le saquis provecho.
Ah, y si alguien propone mejoras o correcciones que no dude en enviarlas!

You might also like