![]() |
Cookie speichern
Hi,
ich möchte die Kekskrümel :mrgreen: speichern. Dazu habe ich mir den TIdCookieManager (Indy 10) genauer angesehen. In einer Schleife könnte ich die Cookies ja zu einer TStrings hinzufügen:
Delphi-Quellcode:
Und später zu einem jungfräulichen CookieManager hunzufügen:
for I := 0 to Cookie.CookieCollection.Count - 1 do
SL.Add(Cookie.CookieCollection.Items[I].CookieText);
Delphi-Quellcode:
Die SL zu speichern/laden ist ja dann kein Problem mehr. Kennt jemand Eventuell eine schönere Methode? Zumal so auch noch nicht das komplette Cookie gespeichert wird (Expires usw.), da müsste ich dann noch mehr in die SL oder in ein anderes Format übernehmen (was ich notfalls auch tun werde, aber ich frage lieber nach, ob ich nicht irgendetwas übersehen habe, da ich mir schon oft die Arbeit zu schwer gemacht habe). Ein LoadFromFile/SaveToFile gibt es ja leider nicht. :(
for I := SL.Count - 1 downto 0 do
Cookie.CookieCollection.AddSrcCookie(SL[I]); Mfg FAlter |
Re: Cookie speichern
Was hast du denn vor?
|
Re: Cookie speichern
Hi,
ich möchte die Cookies speichern, um sie später wieder zu laden. Ansonsten ist spätestens nach dem Beenden des Programmes alles verloren. Sämtliche moderne* Browser speichern ja auch ihre Kekse. Mfg FAlter *) Die FF-Rechtschreibprüfung schlägt "modernde" vor :lol: aber ich mein das Gegenteil. |
Re: Cookie speichern
Machst du einen eigenen Browser oder was? Cookies speichern woher?
|
Re: Cookie speichern
Hi,
Irgendwie verstehe ich deine Fragen nicht. Ich möchte einfach Cookies aus dem TIdCookieManager von Indy speichern und später wieder in einen solchen laden. Damit, wenn ich beim nächsten Mal auf eine Seite zugreife, die schon einmal besucht wurde, die TIdHTTP die Cookies mitsendet. Das ist ein generelles Problem, was nichts damit zu tun hat, wie die heruntergeladenen Dokumente danach weiterverarbeitet werden. Ob es nun also ein Browser wird oder ein Spider oder sonstwas ist eigentlich egal. Aber wenn du es wirklich wissen willst: Im Moment ist es eher ein Browser. Mfg FAlter |
Re: Cookie speichern
Vllt. das onNewCookie ereignis?
naja, du musst sie ja auch noch auslesen. ich schaue mir den mal kurz an. Poste dann per Edit. mfg edit: for!
Delphi-Quellcode:
nur zeigt der die expires nicht an :pale:
procedure TForm1.Button2Click(Sender: TObject);
var n,i: integer; begin n:=idcookiemanager1.CookieCollection.Count-1; for i:=0 to n do begin Memo2.Lines.Add( idcookiemanager1.CookieCollection.Items[i].Domain+' ( '+ idcookiemanager1.CookieCollection.Items[i].Expires+' ) :'+idcookiemanager1.CookieCollection.Items[i].Value ); end; end; mfg |
Re: Cookie speichern
Zur Not kannst du immer noch die Response-Header von TidHTTP manuell auseinanderfriemeln und so die Cookies speichern. Ich hab die RFC-Nummer grad nicht im Kopf, aber ich weiss dass es sowas gibt ;)
Greetz alcaeus |
Re: Cookie speichern
Hi,
Zitat:
In der Indy.Sockets Hilfe steht: CookieText can contain the in the CookieName and Value properties, as well as property values from Expires, Path, Domain, and the Secure flag. Sollte eigentlich alles wichtige umfassen. Zitat:
Laut Indy-Hilfe:
Mfg FAlter [edit] Irgendwie komisch, auf einmal wird Expires doch mit gespeichert, wo ich es extra nochmal manuell gespeichert habe, jetzt ist es doppelt vorhanden:
Code:
Eventuell hab ich mich geirrt und es wird in CookieText soch schon alles wichtige gespeichert (Hervorgehoben).
"[b]delphipraxis_data=a%3A0%3A%7B%7D; path=/; expires=Thu, 14-May-2009 15:36:16 GMT; domain=www.delphipraxis.net[/b]",,,31535982,"<Reserved... following debug data: expires>","Thu, 14-May-2009 15:36:16 GMT"
Mfg FAlter [/edit] [edit] Nach dem erneuten Laden des Cookies, auch über Add, scheint Expires verloren zu gehen. Ich versuchs mal mit einzeln speichern. [/edit] [edit] OK, mit Extra-Zuweisung des Expired klappt es erstmal. Es scheinen allerdings auch einige veraltete Kekse mitgespeichert zu werden. [/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz