Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3033 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Méthode GET sans LWP::Simple [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Méthode GET sans LWP::Simple [résolu]

n°325636
monsieur t​omate
Posté le 07-03-2003 à 02:53:08  profilanswer
 

Je voudrais faire une méthode GET (pour exécuter un fichier à distance donc), sans utiliser la librairie LWP::Simple qui n'est pas disponible sur mon server. Quelle est la fonction qui remplace cette librairie ?


Message édité par monsieur tomate le 08-03-2003 à 14:05:05

---------------
HardGamers.org
mood
Publicité
Posté le 07-03-2003 à 02:53:08  profilanswer
 

n°325682
arghbis
salops de dauphins
Posté le 07-03-2003 à 09:31:52  profilanswer
 

aucune, tu es obligé d'utiliser unmodule perl.

n°325683
arghbis
salops de dauphins
Posté le 07-03-2003 à 09:33:18  profilanswer
 

heu attends, je comprends pas : si c pour exécuter une méthode à distance, ça veut dire que tu lance ton script perl depuis ton pc => qu'est-ce qui t'empêche d'installer LWP??? :??:

n°325782
monsieur t​omate
Posté le 07-03-2003 à 10:55:25  profilanswer
 

non, tu peux le faire avec un serveur, avec

Code :
  1. use LWP::Simple


au début du fichier
je le sais paske si je ne le fais pas, ça plante...


---------------
HardGamers.org
n°325840
arghbis
salops de dauphins
Posté le 07-03-2003 à 11:45:37  profilanswer
 

oui, c ce que je dit! tu utilise le module perl LWP::Simple!  :pt1cable:

n°325842
monsieur t​omate
Posté le 07-03-2003 à 11:47:17  profilanswer
 

je répondais à
"si c pour exécuter une méthode à distance, ça veut dire que tu lance ton script perl depuis ton pc => qu'est-ce qui t'empêche d'installer LWP??? "
 
le module a été créé en Perl, il doit bien y avoir une astuce (genre un HTTP::request ou une merde du genre, non ?)


---------------
HardGamers.org
n°326378
monsieur t​omate
Posté le 07-03-2003 à 20:58:50  profilanswer
 

up!


---------------
HardGamers.org
n°326578
pospos
Posté le 08-03-2003 à 11:20:16  profilanswer
 

ya d'autres modules que tu peu utiliser, souvent plus legers que lwp.
 
ya HTTP::Lite et HTTP::MHTTP, et si t'es sous windows tu peux par exemple utiliser win32::Internet
 
Sinon tu peu aussi te faire une petit focntion à la main avec des sockets. Par exemple en s'inspirant simplement de la fonction get de lwp::Simple:
 

Code :
  1. print get("http://www.google.fr/" );
  2. sub get {
  3.         my $url = shift;
  4.         my ($host, $port, $path) = $url =~ m,^http://([^/:\@]+)(?::(\d+))?(/\S*)?$,;
  5.         $port ||= 80;
  6.         $path ||= "/";
  7.         require IO::Socket;
  8.         local($^W) = 0;
  9.         my $sock = IO::Socket::INET->new(PeerAddr => $host,
  10.                                         PeerPort => $port,
  11.                                         Proto    => 'tcp',
  12.                                         Timeout  => 60) || return undef;
  13.        $sock->autoflush;
  14.        my $netloc = $host;
  15.        $netloc .= ":$port" if $port != 80;
  16.        print $sock join("\015\012" =>
  17.                         "GET $path HTTP/1.0",
  18.                         "Host: $netloc",
  19.                         "User-Agent: Monsieur Tomate Navigator/5.0",
  20.                         "", "" );
  21.    
  22.        my $buf = "";
  23.        my $n;
  24.        1 while $n = sysread($sock, $buf, 8*1024, length($buf));
  25.        return undef unless defined($n);
  26.    
  27.        if ($buf =~ m,^HTTP/\d+\.\d+\s+(\d+)[^\012]*\012,) {
  28.              my $code = $1;
  29.              #print "CODE=$code\n$buf\n";
  30.              if ($code =~ /^30[1237]/ && $buf =~ /\012Location:\s*(\S+)/) {
  31.                    # redirect
  32.                    my $url = $1;
  33.                    return undef if $loop_check{$url}++;
  34.                    return _get($url, $host, $port, $path);
  35.              }
  36.              return undef unless $code =~ /^2/;
  37.              $buf =~ s/.+?\015?\012\015?\012//s;  # zap header
  38.        }
  39.    
  40.        return $buf;
  41. }


Message édité par pospos le 08-03-2003 à 11:41:34
n°326579
monsieur t​omate
Posté le 08-03-2003 à 11:22:16  profilanswer
 

ok merci, je vais essayer tout ça


---------------
HardGamers.org
n°326583
pospos
Posté le 08-03-2003 à 11:25:21  profilanswer
 

j'ai edité yavait une erreur

mood
Publicité
Posté le 08-03-2003 à 11:25:21  profilanswer
 

n°326585
monsieur t​omate
Posté le 08-03-2003 à 11:29:13  profilanswer
 

arf, le temps que tu édites, j'étais déjà en train d'éditeur les erreurs. super ça marche ! merci !!


---------------
HardGamers.org

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Méthode GET sans LWP::Simple [résolu]

 

Sujets relatifs
Upload de fichier SQL de 12 Mo avec PHPMyAdmin [résolu][java][Applet] Placer les composant où l'on souhaite [Resolu]
jeu de la vie en java, nouveau probleme avec une methodeMySQL, jointure qui fait planter MySQL .... [RESOLU]
[Résolu] [POO] Design-Patterns, Modèle Vue Contrôleur...[RESOLU] [Access] Création d'un formulaire de consultation
lire un fichier en commençant par la fin [résolu]MySQL: comment faire pour éviter des lignes en doublons [RESOLU]
PostgreSQLProblème de démarrage [ RESOLU][c++] obtenir le nom d utilisateur du pc [RESOLU]
Plus de sujets relatifs à : Méthode GET sans LWP::Simple [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR