http.header Home



Home | Protocole Http | Références de code | FAQ | A propos | English


Tous les languages donnent des moyens d'effectuer des transactions Http. Cependant, il y a deux choses à savoir :

   1 - Une transaction Http peut prendre du temps, attention aux timeouts !
   2 - Il y a toujours une solution packagée et une solution manuelle, cela dépend de vos besoins...

Dans cette section, nous parlerons des languages PHP et Perl.
Bientôt plus !


  Script Perl

1 - La solution packagée : utilisation du package LWP

   use LWP::UserAgent;

   $Server = "www.yahoo.fr";
   $Port = "80";
   $File = "/the_file.gif";
   $Request = "http://$Server:$Port$File";

   my $User_Agent = new LWP::UserAgent;
   my $response = $User_Agent->get($Request);
   if ($response->is_success)
     { print $response->content; }
   else
     { print $response->status_line; };
 

    Dans cette page

Perl
Php

      Liens externes

Perl :
> Web Client Programming with Perl by O'Reilly

> Perl & LWP by O'Reilly











 

2 - La solution manuelle : ouvrir une socket et faire la requète Http


3 - Exemple d'application complète avec Perl TK : outil HTTP incluant du file upload avec la méthode POST (screenshot), soyez libre d'utiliser, distribuer...


Script Php

1 - La solution packagée : utilisation de la fonction fopen

En utilisant la fonction "fopen", vous pouvez ouvrir un fichier à travers une connection Http.
Rien à faire ! Attention simplement aux anciennes version de Php (avant 4.0.5) qui ne supportent pas les redirections
Note : fonctionne aussi à travers un firewall ou une connection ftp ! Exemple :

<?php
   $fp1 = fopen("http://www.google.com/", "r" );
   $fp2 = fopen("http://www.yahoo.com", "r", "8080" );
?>

2 - La solution manuelle : ouvrir une socket et faire la requète Http

Exemple, téléchargement du fichier : "http://www.yahoo.fr/the_file.gif :

<?php
   $Server = "www.yahoo.fr"
   $Port = "80"
   $File = "/the_file.gif"
   $Request = "GET " . $File . " HTTP/1.0\r\n";
   $Request = $Request . "Host: " . $Server . "\r\n";         // Ici viennent les attributs
   $Request = $Request . "\r\n";                                   // Attention à la ligne vide
   
   $Socket = fsockopen($Server, $Port, &$errno, &$errstr, 30);
   if(!$Socket) Error("<b>Can't connect host</b><br>$errstr ($errno)");
   
   fputs($Socket, $Request);
   
   while( ! ereg( "^\r?\n?$", $Line ) )                            // Récupération des entêtes
       $Head = $Head . fgets($Socket, 1024);
   
   while(!feof($Socket))                                             // Récupération du contenu du fichier
       $Html = $Html . fgets($Socket, 1024);
   
   fclose($Socket);
?>

 




Matthieu Delgrange 2006 - http.header@netcourrier.com - Home