Ciasteczka idHTTP + idCookiesManager

0

Witam,

Chce zalogowac sie do pewnej strony, oto zrodlo:

var
  ErrorCode : string;
  finalstr : ansistring;
  FSSL : TIdSSLIOHandlerSocket;
  Input,Output,Input2:TStringStream;

  begin

  Input := TStringStream.Create('');
  Output := TStringStream.Create('');
  Input2 := TStringStream.Create('');

    IdCookieManager:= TIdCookieManager.Create(nil);
    HTTP.AllowCookies:= True;

    HTTP.CookieManager:= IdCookieManager;

    HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.0; pl-PL; rv:1.7.6) Gecko/20050226 Firefox/1.0.1';
    http.Request.ContentType := 'application/x-www-form-urlencoded';
    HTTP.Request.Referer := 'http://www.gallardo.w.activ.pl/baza/index.php?id=login';

    HTTP.CookieManager.AddCookie('PHPSESSID','www.stronka.pl');
    Input.WriteString('nick=testowy&pass=testowe&s=Zaloguj');
    HTTP.Post('http://www.adres.pl/baza/index.php?id=login',Input, Output);



    Memo1.Text:=Output.DataString;

Problem w tym, ze sniffer naglowkow http nie rejestruje zadnego ciasteczka a co za tym idzie logowanie nie moze sie powiesc.
user image

Nie jestem pewnien co do poprawnosci funkcji

HTTP.CookieManager.AddCookie('PHPSESSID','www.stronka.pl');

gdyz ona ma dodawac ciaasteczko i wartosc jednak nic takiego nie wysyła w nagłówkach.
Aby poprawnie sie zalogowac musze wyczytac wartosc z set-cookie a nastepnei wyslac ja z powrotem lecz mam problem z wyslaniem cookies.

Pozdrawiam
Jaco

0

w ten sposob nie dodajesz do zapytania tylko do menagera, w helpie jest napisane ze IdHTTP powinien sam to robic ale z mojej obserwacji wynika ze trzeba samemu, np:
IdHTTP.Request.CustomHeaders.Values['Cookie'] := IdCookieManager.GenerateCookieList(IdHTTP.URL);

0

Faktycznie pomoglo :-)
Jest moze jakas funckja do usuwania ciasteczek? Chcialbym aby po kliknieciu w button program logowal sie, dokonywal pewnych zmian a nastepnie usuwal cookies. Z tym ostatnim wlasnie mam problem :-|

1 użytkowników online, w tym zalogowanych: 0, gości: 1