_roro: HTTP::Request mit Cookies

Beitrag lesen

hi,

Cookie senden:
#!/usr/bin/perl

use strict;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
use HTTP::Cookies;

my $file = 'c:/tmp/keks.txt';
my $cookie = HTTP::Cookies->new(file => $file);
$ua->cookie_jar($cookie);

$cookie->load($file);
$ua->cookie_jar($cookie);

my $request = HTTP::Request->new('GET', 'http://example.com');
$cookie->add_cookie_header($request);

my $response = $ua->request($request);
print $response->as_string;

Jo, was in keks.txt stehen muss, könnte so aussehen:
#LWP-Cookies-1.0
Set-Cookie3: keks=rolfs_cookie; path="/cgi-bin/"; domain="example.com"; path_spec; expires="2003-11-04 13:51:35Z"; version=0

D.h., diesen Cookie als text bekommst Du, wenn Du einen Request mit LWP gemacht hat, abspeichern so:

#!/usr/bin/perl

use strict;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
use HTTP::Request::Common qw(GET POST);
use HTTP::Cookies;

my $file = 'c:/tmp/keks.txt';
my $cookie = HTTP::Cookies->new();
$ua->cookie_jar($cookie);

my $request = POST 'http://example.com/cgi-bin/keks.cgi', [ text => 'rolfs_cookie' ];
my $response = $ua->request($request);

print $response->as_string;

$cookie->extract_cookies($response);
$cookie->save($file);

Viel Spass, beim testen ;-)

roro