---------- Forwarded message ---------- From: Gisle Aas <gi...@aas.no> Date: Sun, May 23, 2010 at 20:54 Subject: Re: Cookies not saved to a file (thus no sent) To: Meir Guttman <m...@guttman.co.il>
The following example: use LWP::UserAgent; use HTTP::Cookies; my $jar = HTTP::Cookies->new(file => "lwp.jar", autosave => 1); my $ua = LWP::UserAgent->new(cookie_jar => $jar); $ua->get("http://www.google.com")->dump; fills the 'lwp.jar' file with a few entries for me. Doesn't it do so for you too? --Gisle On Sun, May 23, 2010 at 18:54, Meir Guttman <m...@guttman.co.il> wrote: > Dear LWP wizads! > > > > I began my usage of cookies support in LWP (libwww-perl ver. 5.836) under > Perl, (v5.10.1 for MSWin32-x86-multi-thread) as follows without the > commented-out code: > > > > > use LWP::UserAgent; > > use HTTP::Cookies; > > > > ... > > > > my $browser = LWP::UserAgent->new(); > > > > my $cookies_file = 'LWP_Cookies.lwp'; > > my $cookie_jar = HTTP::Cookies->new({file => $cookies_file, autosave => > 1}); > > # $cookie_jar->load($cookies_file); > > $browser->cookie_jar($cookie_jar); > > # $cookie_jar->add_cookie_header($browser); > > > > # ... some browsing code, including: > > my $response = $browser->get($url_canonical); > > > > # $cookie_jar->extract_cookies($response); > > # $cookie_jar->save($cookies_file); > > > > The result was that the file 'LWP_Cookies.lwp' was created but empty, > despite the HTTP server issuing a "Set-Cookie: xyz" header line. The file > contains just the following text: > > > > #LWP-Cookies-1.0[\n] > > [eof] > > > > (The square brackets signify new-line and end-of-file, respectively, not > literal text.) > > > > Obviously, since the file is empty, on repeat GET requests from that site no > cookies were sent as part of the GET HTTP header. > > > > Question #1: Should the minimal code above be enough to save received > cookies and to retrieve and send cookies? > > > > I then added the above commented out calls to the > $cookie_jar->load($cookies_file) and $cookie_jar->save($cookies_file) > methods with no discernable change. > > > > Question #2: aren't these methods superfluous here? > > > > I then added the $cookie_jar->extract_cookies($response); statement right > before the cookie jar save statement. This didn't change anything either. > The 'LWP_Cookies.lwp' file was still created empty! > > > > I also tried to add $cookie_jar->add_cookie_header($browser) to the request > preparation. That in turn caused an error message "Can't locate object > method "uri" via package "LWP::UserAgent" at > C:/Perl/site/lib/HTTP/Cookies.pm line 42." > > > > Question #3: What is wrong with the invocation of this cookie_jar method? > > > > And generally, what do I do wrong?