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

Web Perl Discussion :

HTTPS et LWP


Sujet :

Web Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Par défaut HTTPS et LWP
    Bonjour,
    Ca fait quelques semaines que je cherche un morceau de code qui me dépannerait sans avoir trouvé une solution correcte de bout en bout.

    Mon but : me connecter à un site HTTPS de façon scripté en fournissant user et mot de passe. Le site redirige alors vers une page du type : https://www.xxxxxx.com/portal/index.mhtml?sid=3e7bf7f1adb8736577c1eb1e35b3d99d

    C'est ce sid que j'ai besoin de récupérer pour pouvoir par la suite réaliser des upload de fichiers. J'ai utilisé le morceau de code ci-dessous (entre autres), j'arrive bien à me connecter au site, mais par exemple, le contenu renvoyé est <HTML><HTML> alors que sur un site HTTP, j'aurai bien le contenu de la page.

    $ua = LWP::UserAgent->new;
    use LWP:ebug qw(+);
    $ua->timeout (60 * $timeout);
    $proxy="http://130.9.56.1";
    $ENV{HTTPS_PROXY} = $proxy;
    $ua->env_proxy;
    $ua->agent('ma_api ' . $version . ' - ' . $ua->_agent);
    $req = HTTP::Request->new (GET=> "https://$host/login/login_submit.mhtml");
    $req->content_type('application/x-www-form-urlencoded');
    $req->content ("username=$username&password=$password");
    $res = $ua->request($req);
    use LWP:ebug qw(+);
    if ($res->is_error)
    {
    print "HTTP response code: " . $res->code . "\n";
    die "There is a problem contacting $host";
    }
    print $res->content

    Merci par avance pour votre aide et conseils

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Par défaut
    Pas d'idée ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Par défaut
    Voici un exemple complet. Il suffit de modifier les variables d'environnement HTTP_PROXY et HTTPS_PROXY ou d'enlever la ligne $ua->env_proxy si vous n'en avez pas besoin.

    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
    use LWP::UserAgent;
    use HTTP::Request;
    use HTTP::Response;
     
    LWP::Debug::level('+');
     
    $url = "https://msp.f-secure.com/web-test";
    $ua = LWP::UserAgent->new();
    $ua->env_proxy;
    $req = HTTP::Request->new(GET => $url);
    $response = $ua->request($req);
     
    if ($response->is_error())
    {
    printf "oo %s\n", $response->status_line;
    }
     
    else
    {
    $content = $response->content();
    print $content;
    }
    exit;

    Le résultat est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    LWP::UserAgent::new: ()
    LWP::UserAgent::proxy: http http://XXXXX:XXXXXX@130.9.56.4
    LWP::UserAgent::proxy: https http://XXXXX:XXXXXX@130.9.56.4
    LWP::UserAgent::request: ()
    LWP::UserAgent::send_request: GET https://msp.f-secure.com/web-test
    LWP::UserAgent::_need_proxy: Proxied to http://XXXXX:XXXXXX@130.9.56.4
    LWP::Protocol::http::request: ()
    LWP::Protocol::collect: read 15 bytes
    LWP::UserAgent::request: Simple response: OK
    <HTML></HTML>
    En remplaçant dans la variable $url le site, un site HTTP comme google,
    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
    LWP::UserAgent::new: ()
    LWP::UserAgent::proxy: http http://XXXXX:XXXXXX@130.9.56.4
    LWP::UserAgent::proxy: https http://XXXXX:XXXXXX@130.9.56.4
    LWP::UserAgent::request: ()
    LWP::UserAgent::send_request: GET http://www.google.fr
    LWP::UserAgent::_need_proxy: Proxied to http://XXXXX:XXXXXX@130.9.56.4
    LWP::Protocol::http::request: ()
    LWP::Protocol::collect: read 669 bytes
    LWP::Protocol::collect: read 2289 bytes
    LWP::UserAgent::request: Simple response: OK
    <html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859
    -1"><title>Google</title><style><!--
    body,td,a,p,.h{font-family:arial,sans-serif}
    .h{font-size:20px}
    .h{color:#3366cc} etc...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Par défaut
    Bon, après vérification, l'effet provient du proxy. je ne comprends pas trop pourquoi des requêtes HTTP et HTTPS donnent des résultats différents dans un environnement avec proxy alors qu'il n'y a pas de problème sans proxy. Je vais voir le paramètrage du proxy...

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/04/2011, 22h42
  2. [SSL]Communication avec un serveur en https
    Par menon dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 04/09/2003, 16h38
  3. [HTTP] Wget-like
    Par tmonjalo dans le forum Développement
    Réponses: 2
    Dernier message: 28/07/2003, 13h39
  4. [HTTP] Syntaxe méthode POST
    Par Gruik dans le forum Développement
    Réponses: 3
    Dernier message: 26/07/2003, 17h12
  5. [web] rapatrier un document via HTTP
    Par ddhia dans le forum Web
    Réponses: 2
    Dernier message: 08/04/2003, 11h01

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