Cookies not saved to a file (thus no sent)

[email protected] (Meir Guttman) Sun, 23 May 2010 19:54:40 +0300
Newsgroups perl.libwww
Message-ID <!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAAoLbk6wNwx0ad4UhCHL49zcKAAAAQAAAAt+fR+DzU3keyLfuaXZzuhwEAAAAA@guttman.co.il>
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?

 

Regards

Meir
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.