IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

Bad Request avec PERL LWP


Sujet :

Modules Perl

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Par défaut Bad Request avec PERL LWP
    J'ai cree le petit script ci-apres pour recuperer un fichier par une requete HTTP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!perl
    use strict;
    use LWP;
    use LWP::ConnCache;
    use LWP::Debug qw(+);
    LWP::Debug::level('+');
    &main();
    sub main {
    my $browser = new LWP::UserAgent;
    my $cache = $browser->conn_cache(LWP::ConnCache->new( ));
    $browser->conn_cache->total_capacity(undef);
    my $url = "http://172.26.65.1/Vupload";
    my $request = new HTTP::Request( GET => $url );
    my $headers = $request->headers();
    $headers->header( 'Accept-Encoding','gzip, deflate');
    my $response = $browser->request($request);
     if ($response->is_success) {
    	print $response->decoded_content;  
     }
     else {
    	die $response->status_line;
     }
    }
    J'obtiens systematiquement la reponse ci-apres:
    LWP::UserAgent::new: ()
    LWP::UserAgent::request: ()
    LWP::UserAgent::send_request: GET http://172.26.65.1/Vupload
    LWP::UserAgent::_need_proxy: Not proxied
    LWP::Protocol::http::request: ()
    LWP::Protocol::collect: read 147 bytes
    LWP::Protocol::collect: read 512 bytes
    LWP::Protocol::collect: read 512 bytes
    LWP::Protocol::collect: read 512 bytes
    LWP::Protocol::collect: read 512 bytes
    LWP::Protocol::collect: read 512 bytes
    LWP::Protocol::collect: read 512 bytes
    LWP::Protocol::collect: read 512 bytes
    LWP::Protocol::collect: read 512 bytes
    LWP::Protocol::collect: read 512 bytes
    LWP::Protocol::collect: read 180 bytes
    LWP::UserAgent::request: Simple response: Bad Request
    400 Bad Request at test.pl line 22.
    J'utilise wiresharc pour voir la difference entre mon script et un browser du commerce (Mozilla ou IE)

    Voila la seule difference que je vois dans la requete:
    TE: deflate,gzip;q=0.3
    et
    Connection: Keep-Alive, TE
    au lieu de
    Connection: Keep-Alive

    Qui peut me dire si je suis sur la bonne piste et comment enlever ce TE.
    Je suppose que le client ne supporte pas le transfert-encoding.
    Merci

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    A mon avis, ton problème est plus probablement dû au nom de ton UserAgent : essaie de mettre le UserAgent d'un navigateur standard à la place et tu devrais obtenir le résultat sans problème. Le site est sans doute "protégé" contre les robots.

    --
    Jedaï

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Par défaut
    Jedai, merci de ta reponse. Mais non, j'ai deja essaye de faire ressembler ma requete au maximum à la requete d'un navigateur (user agent, application, langage, Charset,...) en changeant le header, sans succes.
    La seule difference que je trouve entre ma requete et la requete correcte est le fameux TE (je suppose pour Transfert-Encoding) que je n'arrive pas a faire disparaitre de ma requete.
    Christian

  4. #4
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Par défaut
    En fait le problème vient du fait qu'il faut un proxy pour accéder au serveur. Malheureusement j'ai un proxy que je peux utiliser sur un reseau local mais pas partout. Comment puis je en créer un universel?

Discussions similaires

  1. Bad request avec Gdata google calendar
    Par pierre3401 dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 31/08/2013, 09h46
  2. update avec Perl
    Par mimilou dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/05/2004, 16h22
  3. Connexion avec Perl
    Par BARBIER dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/05/2004, 14h05
  4. faire des graphiques avec Perl
    Par And_the_problem_is dans le forum Modules
    Réponses: 2
    Dernier message: 16/07/2003, 16h08
  5. [reseaux] Comment creer un compte user à partir d'un formul avec perl
    Par oulai_evado dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 01/10/2002, 19h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo