How can I use Perl to send and HTTP request with a cookie?
perl
Solution
As mentioned cookies are in HTTP::Cookies:
You need to create a cookie jar
You set the value of the cookies to put in the jar
You then associate that jar with your user agent
For example:
my $ua = LWP::UserAgent->new;
my $cookies = HTTP::Cookies->new();
$cookies->set_cookie(0,'cookiename', 'value','/','google.com',80,0,0,86400,0);
$ua->cookie_jar($cookies);
# Now make your request
`set_cookie` has a rather large number of arguments:
set_cookie( $version, $key, $val, $path, $domain, $port, $path_spec, $secure, $maxage, $discard, \%rest )
This is because the cookie jar is designed from the point of view of a browser (a UserAgent), rather than a single request. This means not all the arguments are so important in this case.
The ones you need to get right are $key, $val, $path, $domain, $port.
Regarding the:
500 Can't connect to www.google.com:80 (Bad hostname 'www.google.com')
It means that LWP can't lookup the address for Google. Are you behind a web proxy? If so you will need to set your proxy in the UA too using something like:
$ua->proxy(['http', 'https'], 'http://proxyhost.my.domain.com:8080/');
Problem
I am new to Perl and I want to write a Perl program that: - creates an HTTP request - sends it to any URL (e.g. http://www.google.com ) - includes a cookie in the request - logs the http response codes in a file I have tried this: ``` #!/usr/bin/perl require HTTP::Request; require LWP::UserAgent; $request = HTTP::Request->new(GET => 'http://www.google.com/'); $ua = LWP::UserAgent->new; $ua->cookie_jar({file => "testcookies.txt",autosave =>1}); $response = $ua->request($request); if($response->is_success){ print "sucess\n"; print $response->code; } else { print "fail\n"; die $response->code; } ``` pls tell how to set cookie in 'request' ie how to set a cookie when we send HTTP::Request i was expecting something like: ``` $request = HTTP::Request->new(GET => 'http://www.google.com/'); $ua = LWP::UserAgent->new; $ua->new CGI::Cookie(-name=>"myCookie",-value=>"fghij"); ``` is this possible??