tune has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks, I am in a situation of fixing code which was logging into a provider website (not basic authentication), then filling a form with data and uploading a file with WWW::Form. Finally clicking the form and submitting data. In the result page a ticket number appeared and then it got stored... Until the provider added some nasty Javascript to the form and the above method no longer works.

I was thinking not to worry about page rendering, and simply send the POST request in to the page, and getting the result page back. I know LWP::UserAgent is capable of doing that, but I am not sure if I can maintain the login session ie. capturing all the cookies and feeding that to the LWP::UserAgent request. I need examples of the cookie passing if LWP can do that, perhaps combined with file upload. I tried some Googling but no luck yet.

ps: I am open to other solutions too, eg downloaded PhantomJS and played with it a bit, but would be happier to stay in Perl domains.


<div class="pmsig-35391"


Replies are listed 'Best First'.
Re: Send a POST request with cookies
by thomas895 (Deacon) on Mar 23, 2014 at 01:15 UTC

    The docs for LWP::UserAgent clearly state an example of cookie usage. Look for cookie_jar.

    "Excuse me for butting in, but I'm interrupt-driven..."
Re: Send a POST request with cookies
by Anonymous Monk on Mar 23, 2014 at 03:19 UTC
    use WWW::Mechanize it is a LWP::UserAgent subclass that comes with a cookie jar by default