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 :

Simuler un POST avec PERL


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Par défaut Simuler un POST avec PERL
    Bonjour,
    je cherche à simuler le remplissage d'un formulaire (login & mdp) que j'envairais par POST à /demo/login.do .

    Je m'explique, j'ai le login & mdp dans l'entete HTTP, j'appelle un script perl et je voudrais que ce dernier puisse "forwarder" ce login + mdp à mon application java.

    Ceci me permet de remplacer la page de login qui contenais le formulaire suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form name="logonForm" method="POST" action="http://localhost:8080/demo/logon.do" target="_parent">
    	<input type="text" name="login" maxlength="128" size="20" value="">
    	<input type="password" name="password" maxlength="128" size="20" value="">
    	<input type="image" src="/demo/images/ok_button.gif" border="0" alt="Ok" title="Log on">
    </form>
    j'ai essayé ca, mais bon, ....

    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
    #!/usr/bin/perl
     
    use LWP::UserAgent;
    $ua = LWP::UserAgent->new;
    $ua->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20061201 Firefox/2.0.0.3 (Ubuntu-feisty)");
     
    use HTTP::Request::Common qw(post);
     
    my $req = (post 'logon.do',
    ["login" => $ENV{HTTP_UID},
    "password" => $ENV{HTTP_PASSWORD}]);
     
    $request = $ua->request($req);
    $content = $request->content;
     
    print "Content-type: text/html\n\n";
    print "<base href=\"h**p://www.target_site_url\">";
    print $content;
    exit;
    merci pour vos remarques

    Aswat

  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
    Je ne suis pas sûr de comprendre, qu'est-ce qui cloche avec ton script ? A part je suppose que 'logon.do' n'est pas suffisant dans le post(), tu devrais mettre l'adresse complète.

    --
    Jedaï

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Par défaut
    En fait, j'ai trouvé ce script sur un site mais je ne comprend pas à quoi sert ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    print "Content-type: text/html\n\n";
    print "<base href=\"h**p://www.target_site_url\">";
    print $content;

  4. #4
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Par défaut
    voici mon script modifié :

    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
    #!/usr/bin/perl
     
    use LWP::UserAgent;
    $ua = LWP::UserAgent->new;
    $ua->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20061201 Firefox/2.0.0.3 (Ubuntu-feisty)");
     
    use HTTP::Request::Common qw(post);
     
    my $req = (post 'http://localhost:8080/demo/logon.do',
    ["login" => "scarter",
    "password" => "sprain"]);
     
    $request = $ua->request($req);
    $content = $request->content;
     
    print "Content-type: text/html\n\n";
    print "<base href=\"h**p://www.target_site_url\">";
    print $content;
    exit;
    #print $cgi->redirect( -location => "http://localhost:8080/demo/.quickSearchPage");
    j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Wed May 16 11:24:05 2007] [error] "post" is not exported by the HTTP::Request::Common module\nCan't continue after import errors at /opt/apache-tomcat-5.5.23/webapps/demo/index.pl line 7\nBEGIN failed--compilation aborted at /opt/apache-tomcat-5.5.23/webapps/demo/index.pl line 7.\n

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 41
    Par défaut
    j'ai un morceau de code qui marche presque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/usr/bin/perl
     
    use LWP::UserAgent;
    $ua = LWP::UserAgent->new;
     
    my $req = HTTP::Request->new(POST => 'http://localhost:8080/demo/logon.do',
                     [ login => 'scarter',password => 'sprain']);
    $req->content_type('application/x-www-form-urlencoded');
    $req->content('match=www&errors=0');
     
    my $res = $ua->request($req);
    print $res->as_string;
    seulement mon navigateur m'affiche le code de la page et non la page :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    HTTP/1.1 200 OK
    Connection: close
    Date: Wed, 16 May 2007 09:56:55 GMT
    Server: Apache-Coyote/1.1
    Content-Length: 911
    Content-Type: text/html;charset=ISO-8859-1
    Client-Date: Wed, 16 May 2007 09:56:55 GMT
    Client-Peer: 127.0.0.1:8080
    Client-Response-Num: 1
    Link: </demo/css/standard.css>; /="/"; rel="stylesheet"; type="text/css"
    Set-Cookie: JSESSIONID=3B13A43F7AB3DAFDE2D11AE3B698BC41; Path=/demo
    Title: OPIAM Admin - Demo Application
     
     
     
     
    <HTML>
        <HEAD>
            <TITLE>OPIAM Admin - Demo Application</TITLE>
            <LINK rel="stylesheet" type="text/css" href="/demo/css/standard.css" />
        </HEAD>
     
     
     
        <FRAMESET cols="275, *" frameborder="0" framespacing="0">
            <FRAMESET rows="65, *" frameborder="0" framespacing="0">
                <FRAME name="logo" src="/demo/images/newlogo.jpg" marginheight="0" marginwidth="0">
                <FRAME name="leftnav" src="/demo/jsp/tiles/common/login_nav.jsp" marginheight="0" marginwidth="0">
            </FRAMESET>
            <FRAME name="body" src="/demo/jsp/tiles/common/login_body.jsp" marginheight="0" marginwidth="0">
            <NOFRAMES>
                <P>This frameset document contains:
                <UL><LI>Logo
                    <LI>Application tree
                    <LI>Application menu and body
                </UL>
            </NOFRAMES>
        </FRAMESET>
    </HTML>

  6. #6
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/perl
     
    use LWP::UserAgent;
    $ua = LWP::UserAgent->new;
     
    my $req = HTTP::Request->new(POST => 'http://localhost:8080/demo/logon.do',
                     [ login => 'scarter',password => 'sprain']);
    $req->content_type('application/x-www-form-urlencoded');
     
    my $res = $ua->request($req);
    my %headers = %{$res->headers};
    print "$_: $headers{$_}\n" for keys %headers;
    print "\n";
    print $res->content;
    --
    Jedaï

Discussions similaires

  1. Connexion a un site Web par POST avec perl ?
    Par SmoZy dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2014, 17h49
  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