hotti: Cookie speichern mit LWP

hi,

siehe Thema, wenn expires gesetzt ist, geht das so

  
my $ua = LWP::UserAgent->new;  
$ua->cookie_jar(HTTP::Cookies->new(file => "d:/tmp/lwpcookies.txt", autosave => 1));  

Wenn jedoch kein Ablaufdatum gesetzt ist (sessionCookie) ist die Datei leer. Wie kann ich die Parameter des Cookies (name, value) denn trotzdem bekommen?

Hotte

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  1. Moin Moin!

    Siehe HTTP::Cookies. Die Cookie-Jar-Datei enthält nur persistente Cookies.

    Mit der scan-Methode kannst Du dir alle Cookies aufzählen lassen.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. hi Alexander,

      Siehe HTTP::Cookies. Die Cookie-Jar-Datei enthält nur persistente Cookies.

      Mit der scan-Methode kannst Du dir alle Cookies aufzählen lassen.

      Ja, die Doku, während der thread hier so dahinschmorte, war ich auch nicht untätig ;-)

      Es ist so, dass cookie_jar einen Cookie mit no expires irgendwie temporär behält und in den Request reinstopft und zwar solange, wie das Script, also der UA am Leben ist.

      Mal ein bischen Code:

        
      #!/usr/bin/perl  
      ###########################################################################  
      my $cfile = "d:/tmp/lwpcookies.txt";  
      ###########################################################################  
      use strict;  
      use HTTP::Cookies;  
      use LWP::UserAgent;  
        
      my $ua = LWP::UserAgent->new;  
      $ua->cookie_jar(HTTP::Cookies->new( file => $cfile, autosave => 1));  
        
      my $req = HTTP::Request->new(GET =>"http://rolfrost/cgi-bin/trust.cgi?login=1;username=Hannes");  
        
      my $res = $ua->request($req);  
        
      print $ua->cookie_jar->as_string, "\n"; # oops, hier iser ja ;-)  
      # Set-Cookie3: SID=99dd50c1848f3c65327bf01e01dabf95; path="/cgi-bin"; domain=rolfrost.local; discard; version=0  
      
      

      Mit anderen Worten: cookie_jar nimmt mir soviel Arbeit ab, dass mein Bestreben, den Wert eines Session-Cookies auszulesen, eigentlich überflüssig ist.

      Hotte

      --
      Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
      1. Moin Moin!

        Es ist so, dass cookie_jar einen Cookie mit no expires irgendwie temporär behält und in den Request reinstopft und zwar solange, wie das Script, also der UA am Leben ist.

        Es ist sogar noch einfacher: Die save-Methode schreibt Cookies, die nicht persistent gespeichert werden sollen, schlicht nicht in die Datei (außer Du erzwingst das per ignore_discard => 1). Das Ausfiltern übernimmt die anonyme scan-Callback-Funktion in der as_string-Methode. Ansonsten werden alle Cookies gleich behandelt.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        1. Moin Moin!

          »» Es ist so, dass cookie_jar einen Cookie mit no expires irgendwie temporär behält und in den Request reinstopft und zwar solange, wie das Script, also der UA am Leben ist.

          Es ist sogar noch einfacher: Die save-Methode schreibt Cookies, die nicht persistent gespeichert werden sollen, schlicht nicht in die Datei (außer Du erzwingst das per ignore_discard => 1). Das Ausfiltern übernimmt die anonyme scan-Callback-Funktion in der as_string-Methode. Ansonsten werden alle Cookies gleich behandelt.

          Danke für Deine Hinweise,

          ignore_discard => 1

          war das Zauberwort ;-)

          Hotte

          --
          # Sammeln Sie auch Kekse? Verfallsdatum beachten!