Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Remote web form post

by c0ldfire (Initiate)
on Aug 20, 2011 at 18:24 UTC ( #921433=perlquestion: print w/replies, xml ) Need Help??
c0ldfire has asked for the wisdom of the Perl Monks concerning the following question:

Hello, I'm relatively new to perl, I was trying to create a perl script to remote login in a web form and return either sucess or failure. but its not working or i'm missing something, plus it give me an error message: Here is what i wrote:
#!/usr/bin/perl use LWP::UserAgent; use HTTP::Response; use HTTP::Request::Common qw(POST); $ua = LWP::UserAgent->new; $ua->agent("Mozilla 8.0..."); $username = "username"; $password = "password"; my $req = (POST '', ["Username" => "$username", "Password" => "$password"]); $request = $ua->request($req); $content = $request->content; if ($res->is_success) { print ("success"); exit; } else { print ("failure"); }
this script is not running at all and the error i'm getting is:

Can't call method "is_success" on an undefined value at c:\ line 24.

Replies are listed 'Best First'.
Re: Remote web form post
by linuxer (Curate) on Aug 20, 2011 at 19:00 UTC

    Where do you define and fill $res?

    That variable is never defined or filled and therefore is undefined.

    Maybe you should consider to use strict and warnings.


    I had another look at your script and think, there are more flaws than the one I previously mentioned.

    • $req should contain a HTTP::Request object; so you should create one.
    • POST 'http://...' is missing the correct operator between POST and the URL string
    • $ua->request() returns a response object; you should give the variable a better fitting name than $request.

      is missing the correct operator between POST and the URL string

      Sure its not :)

      use DDS; use HTTP::Request::Common qw(POST); Dump( POST '', [ qw' username joe password joe ' ] ) +; __END__ $HTTP_Request1 = bless( { _content => 'username=joe&password=joe', _headers => bless( { "content-length" => 25, "content-type" => 'application/x-ww +w-form-urlencoded' }, 'HTTP::Headers' ), _method => 'POST', _uri => \do { my $v = '' } }, 'HTTP::Request' ); bless( $HTTP_Request1->{_uri}, 'URI::http' );

      I agree with the rest of your words

        Ah, thank you for the hint. I tested with HTTP::Request, which I prefer...

        I thought of POST being a bareword and not an exported function from HTTP::Request::Common.

        Well, now I see, I don't like that style... ;-)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://921433]
Approved by Corion
[harishnv]: i have one doubt

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2018-02-18 11:19 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (253 votes). Check out past polls.