¡Ya estamos en Twitter!

Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad

Envío de datos a documentos (POST o GET)

por Uriel Lizama

Introducción

En este tutorial vamos a ver como podemos enviar formas o datos a CGI's u otros tipos de documentos, simulando el envío de POST o GET.

A diferencia de otros tutoriales, en este va a ser necesario que leas y comprendas totalmente 2 tutoriales dentro del sitio, pues escribí este tutorial suponiendo que ya manejas bien esos temas.

Los tutoriales son:

Agregando

Si recuerdas en el tutorial anterior aprendimos como leer un documento via HTTP, pues siguiendo la misma sintaxis, vamos a aumentar un par de lineas para enviar datos junto el "pedido" de el documento.

Ahora vamos a ver un ejemplo de un POST a un cgi, así que vamos a empezar inicializando las variables.

Para nuestro ejemplo vamos a suponer que tenemos un cgi que se llama "datos.cgi", por lo que nuestra variable de $url va a ser:

my $url = "http://misitio.com/cgi-bin/datos.cgi";

Ahora digamos que el CGI pide unos datos como pueden ser: nombre, apellido y edad.

Si recuerdas en el tutorial de Leer datos en tu CGI vimos como debe de ser la sintaxis de los "querys" de GET, donde cada variable debe de estar separada por el símbolo de '&'.

En esta caso digamos que nombre=Uriel, apellido=Lizama y edad=18 por lo que nuestra variable $query va a ser:

my $query = "nombre=Uriel&apellido=Lizama&Edad=18";

Listo, ya tenemos nuestras variables, ahora vayamos con el código principal.

Si recuerda creamos un objeto de HTTP::Request para pedir el documento HTTP de esta manera:

my $req = HTTP::Request->new(POST => $url);

Ahora, después de la linea vamos a aumentar un par de lineas de código mas para enviar los datos que queremos:

$req->content_type('application/x-www-form-urlencoded');
$req->content($query);

La primera linea lo que nos dice es el tipo de datos que estamos enviando, que en este caso estamos diciendo que es una forma con los datos codificados. No voy a dar detalles de esto pues es tema para otro tutorial.

La segunda linea es simplemente el "query" que queremos enviar, el cual ya vimos antes.

NOTA: Recuerda que puedes decidir como enviar los datos, pueden ser por medio de POST o de GET. En este ejemplo usamos POST

Muy bien pues ya vimos como enviar datos por medio de CGI.

Notas Finales

Recuerda que siempre antes de enviar los datos a los documentos cheques si lo debes de hacer por medio de POST o de GET (los métodos mas comunes), de lo contrario lo más seguro es que recibas un error.

Código Final

#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

use LWP::UserAgent;
use HTTP::Request;

my $url = "http://misitio.com/cgi-bin/datos.cgi";
my $query = "nombre=Uriel&apellido=Lizama&Edad=18";


my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)");

my $req = HTTP::Request->new(POST => $url);
$req->content_type('application/x-www-form-urlencoded');
$req->content($query);

my $response = $ua->request($req);
my $content = $response->content(); #contenido de la respuesta

print "Content-type: text/html\n\n";
print $content;


¿Quiéres más tutoriales como este? Escribir tutoriales toma una gran cantidad de tiempo y esfuerzo. Si este tutorial te ayudó a aprender o a solucionar algo, por favor considera dejar alguna donación en apoyo a Perl en Español.

Cliquea en el botón de abajo para dejar tu donación por medio de PayPal.

Comparte:
Categorías de Tutoriales:
En Nuestros Foros:

    Software error:

    junk after document element at line 1, column 32, byte 32 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187.
    

    For help, please send mail to the webmaster ([email protected]), giving this error message and the time and date of the error.

  • Entra a los foros »
Socializa:
Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Perl en Español es mantenido con Movable Type
Todo el contenido de Perl en Español está bajo una licencia CC:
Creative Commons License