![]() |
Cookies mit TIdCookieManager und TIdHTTP
habe ein bisher soweit funktionierendes Programm gemacht was von vielen getesteten Seiten die Cookies schoen akzeptiert und mir auch anzeigt (als zwischenprodukt; sinn des programms ist ein anderer)
Allerdings bei der Seite wofuer das Programm am Ende verwendet werden soll (uploaded.to) tritt ein Problem mit den Cookies auf: uploaded.to meldet dass mein Browser die Cookies nicht akzeptieren wuerde obwohl AllowCookies an ist, VAccept in der OnNewCookie procedure auf true ist und der CookieManager bei anderen Seiten auch ganz gut funktioniert. Weiss einer woran das liegt? |
Re: Cookies mit TIdCookieManager und TIdHTTP
push :'(
|
Re: Cookies mit TIdCookieManager und TIdHTTP
Würde mich auch interesieren. Hab nämlich exakt das selbe Problem.
|
Re: Cookies mit TIdCookieManager und TIdHTTP
Schon mit idHTTP1.Request.UserAgent etwas rumgespielt? Vielleicht lesen die das ja aus und entscheiden dann anhand einer Datenbank, ob ein Browser Cookies akzeptiert oder nicht
|
Re: Cookies mit TIdCookieManager und TIdHTTP
steht schon laengst auf IE7 und klappt leider nicht (im IE7 klappts aber manuell)
|
Re: Cookies mit TIdCookieManager und TIdHTTP
Uploaded.to verwendet doch auch Java-Script.
Schalte mal Java-Script in deinem Browser ab und prüfe hier ( ![]() Und dann schau mal, ob du auf Uploaded.to noch arbeiten kannst. |
Re: Cookies mit TIdCookieManager und TIdHTTP
hab ich schon nachgesehen: die cookies werden nicht mit JS geschrieben und ausserdem haben die ein eigenes tool zum uploaden direkt von windows aus
|
Re: Cookies mit TIdCookieManager und TIdHTTP
das offizielle Porgramm logged sich so ein:
Code:
mein Programm macht das ein wenig anders: zuerst ruft der die login datei auf unf schickt als 2. Packet die logindaten hinterher
POST /login HTTP/1.1..Accept: */*..Cache-Control: no-cache..Content-Length: 242..Content-Type: multipart/form-data; boundary=---------------------------e5f210926b..Connection: Close..Host: uploaded.to..Pragma: no-cache..Referer: [url]http://uploaded.to/..User-Agent:[/url] Uploaded.to-Uploader V1.0....-----------------------------e5f210926b..Content-Disposition: form-data; name="email"....USR123..-----------------------------e5f210926b..Content-Disposition: form-data; name="password"....PWDHIER!..-----------------------------e5f210926b--.....
der code dazu funktioniert aber auf anderen Seiten auch wunderbar:
Delphi-Quellcode:
hier noch das was alles intialisiert wird wenn ich das prog starte:
procedure TForm1.login(username, password: string);
var lStream: TMemoryStream; lParams: TStringStream; result: string; begin result := ''; lStream := TMemoryStream.create; lParams := TStringStream.create(''); MyHTTP.Request.ContentType := 'application/x-www-form-urlencoded'; MyHTTP.Request.Referer := 'http://uploaded.to/'; MyHTTP.Request.UserAgent := 'Uploaded.to-Uploader V1.0'; lParams.WriteString('email='+ username +'&password='+ password); MyHTTP.Post('http://uploaded.to/login', lParams, lStream); SetLength(Result,lStream.Size); lStream.Position:=0; lStream.ReadBuffer(Result[1],lStream.Size); Memo2.Text := result; //temporaer um anzuzeigen was rauskommt. bisher immer eine HTML Seite die behauptet ich akzpetiere keine Cookies lParams.Free; lStream.Free; end;
Delphi-Quellcode:
und bitte auch nicht meckern ueber das nicht anwesend sein von try strukturen :P
procedure TForm1.FormCreate(Sender: TObject);
begin MyCookie := TIdCookieManager.Create(self); MyCookie.OnNewCookie := NewCookie; MyHTTP := TIdHTTP.Create(self); MyHTTP.AllowCookies := true; MyHTTP.CookieManager := MyCookie; MyHttp.HandleRedirects := true; MyHttp.OnRedirect := Redirection; login('USR123', 'PWDHIER!'); stopCheck := false; //alles hier nach hat nichts mit der funktionalitaet der cookies zu tun also nicht drauf achten dead := 0; if fileexists('lines.txt') then Memo1.Lines.LoadFromFile('lines.txt'); end; |
Re: Cookies mit TIdCookieManager und TIdHTTP
leider noch ein PUSH
@post hiervor: die Punkte in dem Packet sind nicht unbedingt Punkte sondern sind Punkte+unlesbare Zeichen... sry hab vergessen das genaue Packet zu kopieren :'( |
Re: Cookies mit TIdCookieManager und TIdHTTP
Hi,
du benutzt für die Parameterliste (Name, Passwort) einen "TStringStream", dass hat bei mir nie so richtig funktioniert. Am besten versuchst du es mal mit:
Delphi-Quellcode:
Vielleicht hat das Login nicht geklappt und deshalb wird ausgegeben das die Cookies nicht aktiviert sind?
uses
IdMultiPartFormData; //[...] procedure TForm1.login(username, password: string); var Params:TIdMultiPartFormDataStream; lParams: TStringStream; result: string; begin result := ''; lStream := TMemoryStream.create; Params := TIdMultiPartFormDataStream.Create; TRY MyHTTP.Request.ContentType := 'application/x-www-form-urlencoded'; MyHTTP.Request.Referer := 'http://uploaded.to/'; MyHTTP.Request.UserAgent := 'Uploaded.to-Uploader V1.0'; Params.AddFormField('email',username); Params.AddFormField('password',password); lStream := MyHTTP.Post('http://uploaded.to/login',Params); SetLength(Result,lStream.Size); lStream.Position:=0; lStream.ReadBuffer(Result[1],lStream.Size); Memo2.Text := result; //temporaer um anzuzeigen was rauskommt. bisher immer eine HTML Seite die behauptet ich akzpetiere keine Cookies FINALLY FreeAndNIL(Params); lStream.Free; END; end; Du kannst es ja mal versuchen ;) Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 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