Idhhtp Cockies poraz któryś

0

Piszę program który ma za zadanie zalogować się na pewnej stronie i pobrać różne dane, ale wyskakuje błąd coockies coś tam. Nie chce żadnego Synapse tylko jak już jakiś inny coockies manager.

0

No to znowu mamy wróżyć z fusów podaj przynajmniej kod. Co to za błąd "coockies coś tam"? W ogóle o jaki błąd chodzi o błąd indy, czy błąd na stronie (w pobranym kodzie HTML strony) zamiast poprawnego zalogowania. Na taki post jak Twój można tylko odpowiedzieć musisz poprawić coś tam.

0

Socket Error #11001
Host not found.

Logowanie następuje poprawnie a ten błąd gdy chce przejść do jednej z zakładek którą zwraca mi server wraz z kodem.

0

co za problem wyciągnąć sobie ciasteczka z nagłówka pakietu jak cookiemanager sobie nie radzi? Cookie manager to badziewie i spisuje się raczej rzadko

0

Podejrzewam, że pod Synapse nie miałbyś problemów, o ile strona nie używa JavaScriptu.
Tam ciasteczka są po prostu typu TStringList, można je zapisać, podmienić, modyfikować
czy usuwać do woli. Jak jesteś uprzedzony do Synapse, jak ja do Indy to nic nie poradzę.

0

Właśnie tu jest javascript i dlatego nie chce Synapse. To jak te coockie wyciągnąć i później podesłać? ;p

0

To o ile się orientuje, Indy też nie ogarnie JavaScriptu, ale możesz sprobowac Synapse.
Bywa tak, chociaż nie jestem expertem, że mimo iż na stronie są elementy JavaScriptu
to da radę teź użyć Synapse no i otrzymać prawidłowe ciasteczka, które są wymagane.

0

Jaj musi być wykonany JavaScript to czy użyjesz Indy czy Synapse jesteś tak samo w d... jeżeli nie da się jakoś podesłać danych które wykonywał JS.

Tylko że Host not found. wskazuje że chyba błędnie wpisałeś adres hosta skoro strona działa.

0

Moze podaj na ktora strone chcesz sie zalogowac i odpusc sobie rzeczy takie jak CookieManager.

0

Dokładnie jest to s6.Gladiatus.pl
Niestety po zalogowaniu wszystko prawie w javie.

0

Nie wiem co tak psioczycie na ten IdCookieManager ale u mnie ten kod działa poprawnie:

//nie chciało mi się stosowac wyrazen regularnych wiec funkcja wyciągająca tekst znajdujący się pomiędzy podanymi fragmentami
function TForm1.GetText(txt, stxt, etxt: string): string;
var
  p: Integer;
begin
  result:= '';
  p:= Pos(stxt, txt);
  if (p < 1) then exit;
  Delete(txt, 1, p + Length(stxt) - 1);
  p:= Pos(etxt, txt);
  if (p < 2) then exit;
  result:= Copy(txt, 1, p - 1);
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.10) ' +
    'Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729)';
  LOGIN_URL = 'http://s6.gladiatus.pl/game/index.php?mod=login';

  //zakladki
  OVERVIEW     = ''; //podglad
  STATS        = 'stats'; //statystyki
  ACHIEVEMENTS = 'achievements'; //osiagniecia
  BUDDYLIST    = 'buddylist'; //rodzina

  PAGES_URL_FRMT = 'http://s6.gladiatus.pl/game/index.php?mod=overview&submod=%s&sh=%s';

  LOG_OUT = 'Wyloguj';
var
  inStr, outStr, host: string;
  sl: TStringList;
  sh: string;
begin
  sl:= TStringList.Create;
  try
  IdHTTP1.HandleRedirects:= True;
  IdHTTP1.Request.UserAgent:= USER_AGENT;
  outStr:= IdHTTP1.Get(LOGIN_URL);
  sl.Add('user=TU_LOGIN'); //login
  sl.Add('pass=TU_HASLO') ;  //hasło
  outStr:= IdHTTP1.Post(LOGIN_URL, sl);
  //po poprawnym zalogowaniu strona przekierowuje
  //trzeba wyciągnąć link
  inStr:= GetText(outStr, 'URL=', '" />');
  if (Length(inStr) > 0) then //udało się zalogować trzeba pobrać id sesji i
   //przejść do zakładki podgląd (link przed chwila pobraliśmy)
  begin
    sh:= GetText(inStr, '&sh=', '&login'); //pobierz id sesji
    if (Length(sh) < 1) then exit; //nie mamy sh a to jakieś chyba
    //identyfikator sesji wiec nic z tego - koniec

    outStr:= IdHTTP1.Get(inStr); //do podglad
    if (Pos(LOG_OUT, outStr) > 0) then //jesteśmy zalogowani to poszalejemy
    begin
      inStr:= Format(PAGES_URL_FRMT, [STATS, sh]); //na przykład statystyki
      outStr:= IdHTTP1.Get(inStr); //pobierz statystyki
      Memo1.Text:= outStr;
    end;
  end;

  finally
  sl.Free;
  end;
end;

Oczywiście można było się bardziej postarać np. wyjątki i komunikaty błędów w przypadku niezalogowania itd... ale to już zadanie dla pytacza :P

0

Powiadasz że się zaloguje i wszystko działa? w sensie trzyma sesje? Zaraz lookniemy.

Chyba mi sesji nie trzyma bo memo cały czas puste. A mnie wylogowywuje z przeglądarki. Hmm jakie masz indy?

0

Mam Indy 10 i bez problemu pobrało mi stronę statystyk.

0

Mi nic nie ładuje, spróbuję pobrać skądś indy 10 i zobaczymy, albo będzie szybciej jak podeślesz linka ;p

0

ech Google zamknęli?
http://www.indyproject.org/downloads/10/indy10.0.52_source.zip
Uprzedzając pytanie instrukcja instalacji:

Delphi / BCB Installation

2) Open and compile .dpk files in the following order:

         1. IndySystemX0.dpk (in Lib\System)
         2. IndyCoreX0.dpk (in Lib\Core)
         3. IndyProtocolsX0.dpk (in Lib\Protocols)
         4. IndySuperCoreX0.dpk (in Lib\SuperCore)
            If you are not using SuperCore, then you do not need to compile this package.

3) Now open these .dpk files and click install in the following order:

         1. dclIndyCoreX0.dpk (in Lib\Core)
         2. dclIndyProtocolsX0.dpk (in Lib\Protocols)
         3. dclSuperCoreX0.dpk (in Lib\SuperCore)
            Only install this if you have compiled SuperCore.
0

kAzek: skoro zadziałalo Tobie z Indy, to i zadziałało by z lepszym Synapse. Tylko, że już wiem,
że na to co pisze matigi12 nalezy brać poprawkę, bo On samodzielnie w ogóle nie kombinuje i
jak zobaczyl, że strona w Javie - zamiast, jak nie raz to doradzałem tutaj - ściągnąć WireShark
oraz zobaczyć jak go używać na YouTube, a później przeanalizowac dla pewności jakie pakiety
wysyłane są przez prawdziwą przeglądarkę i to samo wyslać POSTem w Synapse to się poddał.
I nijak tu się ma jego "Sam się kształcę a coś potrafię" do rzeczywistości ;/ Chociaż - o ile się
nie mylę - to jest więcej, niż jedna osoba z sygnaturką o takiej treści na tym forum - chyba ;/

0

Ja mam wszystko już napisane w webbrowserze i tylko chciałem jakoś zmniejszyć użycie ramu. A do samodzielności to może i jestem trochę niesamodzielny ale to wynika min. z braku czasu i trochę lenistwa :P

0

Chcesz zmniejszyć użycie RAMu? To po w takim razie zrezygnuj z WebBrowsera i zrób to tak, jak
Tobie radzę w Synapse. Od biedy możesz w Indy. Na pewno pod Synapse kod będzie szybszy, a i
bezpieczniejszy niż używanie czegoś opartego na badziewnym IE. A i skoro z Ciebie taki leń, to w
sygnaturce coś powineineś mieć o tym wspomniene, że ciąglę się lenisz i nie kształcisz czy coś ;)

0

Jak chciałem z synapse skorzystać to ktoś mi mówił że javy nie obsługuje ale można zrobić ta jak mówiłeś zobaczyć jak wygląda kod który jest wysyłany i tak go wysłać. Ale to też chwila zabawy a na mój komp to troche dłużej niż chwila :P Zobacz Sygnaturke teraz.

0

Probowalem zrobic caly kod ale stanalem przy tych ciachach i ja gdyz moge je wyciac ale one sa podawane przy wysylaniu nazwy uzytkownika itp. To co wysylam wyglada tak:

POST /game/index.php?mod=login HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: s6.gladiatus.pl
User-Agent: Mozilla
Content-Length: 28
Content-Type: application/x-www-form-urlencoded

user=test_delphi&pass=?????

a to co odbieram:

HTTP/1.1 200 OK
Date: Thu, 30 Sep 2010 1303 GMT
Server: Apache
Set-Cookie: Gladiatus=204592%3B010dffa94454c637516e8c1961ff85db; expires=Fri, 30-Sep-2011 1303 GMT
connection: close
cache-control: no-cache
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8

I tutaj wlasnie otrzymujesz cookie no ale juz przy polaczeniu z ta strona trzeba je wyslac wiec ja na tym stanalem. Jesli do tego dojde to umieszcze Ci caly kod.

0

Nieobeznany: zobacz poniższy kod, służy do logowania się na stronie pewnego szczecińskiego
klubu, z ktorego galerii później pobiaram same zdjęcia. A i to jest nietypowa o tyle strona, że
po zmianach trzeba najpierw normalnie wejść na strone uzyskując ciasteczka, później sobie te
ciasteczka jak widzisz zapamiętuje, teraz robie SynHttp.Clear; co jak wiadomo już po lekturze
dokumentacji czyści Document oraz Headers. Następnie przywracam ciasteczka i wysyłam już
poprzez POST potrzebne dane jak login oraz hasło. Do tego mam oczywiście także obslugę, w
case - przekierowania na nowy adres i rekurencje, do tej samej funkcji. I w przypadku akurat
tej strony taki sposób działa. Ale wiele stron jest różnych. Czasami potrzeba jakieś dane też z
użyciem POST'a wysłać na przekierowany adres lub więcej kombinacji, tak było na przykład z
forum na darkwarez.pl i programem do wysyłania w szysbki sposób postów bez przeglądarki.
Trzeba na spokojnie przeanalizować w WireShark co robi przeglądarka, a później spróbowac z
użyciem Synapse zrobić to samo. Czasami pomimo tego, że strona używa Javy - da się radę.

//... httpsend do uses

const
  Base_Url = 'http://www.heyaclub.pl/';
  Profile_Page = 'index.php?go=profil';
  Gallery_Page = 'index.php?go=galeria';
  Gallery_SubPage = '&page=';
  ToPost_MimeType = 'application/x-www-form-urlencoded';
  Opera_UserAgent = 'Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.6.30 Version/10.60';

// ...

function HeyaPostToMemoryStream(const URL : string;
  HeyaUserName, HeyaPassword : string; const MemoryStream : TMemoryStream) : boolean;
const
  Location_Prefix = 'Location:' + #32;
var
  SynHttp : THttpSend;
  I, Position : integer;
  OldCookie, UrlData, Str, DirectLink : string;
begin
  OldCookie := '';
  SynHttp := THttpSend.Create;
  try
    SynHttp.KeepAlive := True;
    SynHttp.Protocol := '1.1';
    SynHttp.UserAgent := Opera_UserAgent;
    SynHttp.HTTPMethod('GET', Base_Url);
    OldCookie := SynHttp.Cookies.Text;
    SynHttp.Clear;
    SynHttp.Cookies.Text := OldCookie;
    SynHttp.MimeType := ToPost_MimeType;
    URLData := 'login=' + HeyaUserName + '&pass=' + HeyaPassword + '&action=zaloguj';
    SynHttp.Document.Write(Pointer(URLData)^, Length(URLData));
    Result := SynHttp.HTTPMethod('POST', Url);
    case SynHttp.ResultCode of
      301, 302 :
        begin
          for I := 0 to SynHttp.Headers.Count - 1 do
          begin
            Str := SynHttp.Headers[I];
            Position := Pos(Location_Prefix, Str);
            if Position > 0 then
            begin
              DirectLink := Copy(Str, Position + Length(Location_Prefix), MaxInt);
              Break;
            end;
          end;
          HeyaPostToMemoryStream(DirectLink, HeyaUserName, HeyaPassword, MemoryStream);
        end;
    else
      MemoryStream.Clear;
      SynHttp.Document.SaveToStream(MemoryStream);
      MemoryStream.Position := 0;
    end;
  finally
    SynHttp.Free;
  end;
end;
0

Olesio miales racje. Zrobilem na biegu wyciecie ciacha szybkie i powtorzylem czynnosc wysylajac Cookie wczesniej pobrane i loguje. Caly kod wrzuce niedlugo gdyz na biegu zakodzilem to w innym jezyku pozniej przeloze na object pascal gdy wroce.

Ok wszystko zrobilem tylko bez komponentu IdHTTP a przy uzyciu komponentu IdTCPClient (z indy9)

kod:

procedure TForm1.ZalogujClick(Sender: TObject);
begin
  { nazwa uzytkownika i haslo }
  user := 'wpisz tutaj login';
  pass := 'wpisz tutaj haslo';

  // odpalamy strone glowna
  tcp.Port := 80;    { port stron = 80 }
  tcp.Host := 'gladiatus.pl';  { host = gladiatus.pl lub 87.106.144.98 }
  tcp.Connect;
  { tu sa naglowki }
  send := 'GET /game/ HTTP/1.1'+crtl+
    'TE: deflate,gzip;q=0.3'+crtl+
    'Connection: TE, close'+crtl+
    'Host: gladiatus.pl'+crtl+
    'User-Agent: Mozilla'+crtl+crtl;
  { wysylamy je do "socka" }
  tcp.Write(send);
  tcp.AllData;  { odczytujemy odpowiedz od servera }
  tcp.Disconnect;

  tcp.Port := 80;
  tcp.Host := 'gladiatus.pl';
  tcp.Connect;
  send := 'GET /game/index.php?mod=login HTTP/1.1'+crtl+
    'TE: deflate,gzip;q=0.3'+crtl+
    'Connection: TE, close'+crtl+
    'Host: gladiatus.pl'+crtl+
    'User-Agent: Mozilla'+crtl+crtl;
  tcp.Write(send);
  tcp.AllData;
  tcp.Disconnect;

  tcp.Port := 80;
  tcp.Host := 's6.gladiatus.pl';
  tcp.Connect;
  send := 'GET /game/index.php?mod=login HTTP/1.1'+crtl+
    'TE: deflate,gzip;q=0.3'+crtl+
    'Connection: TE, close'+crtl+
    'Host: s6.gladiatus.pl'+crtl+
    'User-Agent: Mozilla'+crtl+crtl;
  tcp.Write(send);
  tcp.AllData;
  tcp.Disconnect;

  {to wyslemy do naszego postu }

  login_post := 'user='+user+'&pass='+pass;
  tcp.Port := 80;
  tcp.Host := 's6.gladiatus.pl';
  tcp.Connect;
  send := 'POST /game/index.php?mod=login HTTP/1.1'+crtl+
  'TE: deflate,gzip;q=0.3'+crtl+
  'Connection: TE, close'+crtl+
  'Host: s6.gladiatus.pl'+crtl+
  'User-Agent: Mozilla'+crtl+
  'Content-Length: '+IntToStr(length(login_post))+crtl+
  'Content-Type: application/x-www-form-urlencoded'+crtl+crtl+login_post;
  tcp.Write(send);
  { teraz bedziemy wycinali ciacho =] }
  while send <> 'tak' do
  begin
    send := Trim(tcp.ReadLn);
    if Pos('Gladiatus=', send) > 0 then
    begin
      Cookie := Copy(send, Pos('Gladiatus=', send), Pos(';', send)-12);
      send := 'tak';
      log.Lines.Add('Cookie: '+crtl+Cookie);
    end;
  end;
  tcp.Disconnect;

  { gdy juz mamy ciacho powtorzamy laczenie od poczatku z dodanym naglowkiem }

    // odpalamy strone glowna
  tcp.Port := 80;    { port stron = 80 }
  tcp.Host := 'gladiatus.pl';  { host = gladiatus.pl lub 87.106.144.98 }
  tcp.Connect;
  { tu sa naglowki }
  send := 'GET /game/ HTTP/1.1'+crtl+
    'TE: deflate,gzip;q=0.3'+crtl+
    'Connection: TE, close'+crtl+
    'Host: gladiatus.pl'+crtl+
    'User-Agent: Mozilla'+crtl+
    'Cookie: '+Cookie+crtl+crtl;
  { wysylamy je do "socka" }
  tcp.Write(send);
  tcp.AllData;  { odczytujemy odpowiedz od servera }
  tcp.Disconnect;

  tcp.Port := 80;
  tcp.Host := 'gladiatus.pl';
  tcp.Connect;
  send := 'GET /game/index.php?mod=login HTTP/1.1'+crtl+
    'TE: deflate,gzip;q=0.3'+crtl+
    'Connection: TE, close'+crtl+
    'Host: gladiatus.pl'+crtl+
    'User-Agent: Mozilla'+crtl+
    'Cookie: '+Cookie+crtl+crtl;
  tcp.Write(send);
  tcp.AllData;
  tcp.Disconnect;

  tcp.Port := 80;
  tcp.Host := 's6.gladiatus.pl';
  tcp.Connect;
  send := 'GET /game/index.php?mod=login HTTP/1.1'+crtl+
    'TE: deflate,gzip;q=0.3'+crtl+
    'Connection: TE, close'+crtl+
    'Host: s6.gladiatus.pl'+crtl+
    'User-Agent: Mozilla'+crtl+
    'Cookie: '+Cookie+crtl+crtl;
  tcp.Write(send);
  { tu bedziemy wycinac podany location :) }
  while send <> 'tak' do
  begin
    send := Trim(tcp.AllData);
    if Pos('Location: ', send) > 0 then
    begin
      location := Copy(send, Pos('index.php?', send), Pos('Vary: Accept-Encoding', send)-85);
      send := 'tak';
      location := Trim(location);
      log.Lines.Add('Location '+location);
    end;
  end;
  tcp.Disconnect;

  { jestesmy zalogowani przechodzimy do strony glownej :) }

  tcp.Port := 80;
  tcp.Host := 's6.gladiatus.pl';
  tcp.Connect;
  send := 'GET /game/'+location+' HTTP/1.1'+crtl+
    'TE: deflate,gzip;q=0.3'+crtl+
    'Connection: TE, close'+crtl+
    'Host: s6.gladiatus.pl'+crtl+
    'User-Agent: Mozilla'+crtl+
    'Cookie: '+cookie+crtl+crtl;
  tcp.Write(send);
  tcp.AllData;
  tcp.Disconnect;

 log.Lines.Add('Zalogowany!'); // :)

end;

i tutaj jeszcze link do sciagniecia calego programu:

http://www.sendspace.pl/file/ec654fc1ab6cd0163c5c6b2

Potem sobie odpalasz np. Internet Explorer i Http Analyzer i lukasz co sie stanie gdy klikniesz np. w Ranking

widzisz cos takiego:

GET /game/index.php?mod=highscore&sh=aef3d0c6cf1bbb81935a6ce66f74cdec HTTP/1.1
Host: s6.gladiatus.pl
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://s6.gladiatus.pl/game/index.php?mod=highscore&sh=aef3d0c6cf1bbb81935a6ce66f74cdec
Cookie: Gladiatus=204592%3B0178846753cd956d4f51e7d07de7ee61;

to sobie robisz kolejne polaczenie:

tcp.Port := 80;
tcp.Host := 's6.gladiatus.pl';
tcp.Connect;
send := '/game/index.php?mod=highscore'+location+' HTTP/1.1'+crtl+
    'TE: deflate,gzip;q=0.3'+crtl+
    'Connection: TE, close'+crtl+
    'Host: s6.gladiatus.pl'+crtl+
    'User-Agent: Mozilla'+crtl+
    'Cookie: '+cookie+crtl+crtl;
tcp.Write(send);
tcp.AllData; { i z tego przy pomocy Pos/Copy wycinasz sobie rankingi }
tcp.Disconnect;

tylko jeszcze przed tym musialbys sobie wyciac ze zmiennej location tekst tak aby nie bylo innego tekstu procz np:

&sh=16289225d247e1b981c8966985fe5982

jesli czegos nie rozumiesz pisz postaram sie wytlumaczyc :].

0

Nieobeznany jak już robisz w Indy to pisz jak ja napisałem kilka postów wcześniej (nie ma co się bawić w tylko IdTCPClient bo nic na tym nie zyskasz tylko więcej pisania) w IdHTTP ustaw CookieManager na IdCookieManager i ciacha wyślą się same (znaczy bez Twojej ingerencji) i wszystko ma działać.

Patrząc na Twój kod można pomyśleć "wyjechał w pole kombajnem (Indy) a kosi kosą".

0

Wygodnie mi sie robi przy uzyciu IdTCPClient. Fakt ze to nie jest jakas super metoda ale mam zraz do komponentu IdHTTP. Zrobilem matigowi dla przykladu na pewno szybciej jest wyslac tak niz sie bawic z IdHTTP i jakimis CookieManager ktore sa malo czego warte moim zdaniem bo zawsze jak chcialem uzyc zawodzily. Poza tym kod mozna obrocic w petle by dwa razy go nie pisac potem wszystko kopiowac tylko zmienic wyslane naglowki wiec to jest chwila roboty. Ale kazdy ma wlasne zdanie na ten temat.

0

Dzięki jutro albo jakoś w wolnym czasie zobacze jak to tam dalej do wszystkiego wykorzystać i w końcu zoptymalizuje sobie zużycie ramu :]

0

Kazek, ciastka sie nie wyślą ;) Co najwyżej ciastko. idCookieManager to beznadziejny, bardzo prosty komponent, nie postarali się. Jak masz problem z ciasteczkami to upiec je sam. w nagłówkach HTTP je masz.

idhttp1.Response.RawHeaders.DelimitedText
Z tamtąd wygrzebujesz ciastka, wiem że była na to jakaś funkcja (może ktoś będzie wiedział), ale możesz też wygrzebać je, operując na stringach. Następnie zapisujesz ciastko do zmiennej globalnej string i już możesz je wysyłać dołączając przed każdą próbą zapytania kod:

idHTTP1.Request.CustomHeaders.Values['Cookie']:= ciasteczko;
idhttp1.get(); 

// ciasteczko to zmienna zawierająca ciastko

Też miałem problem z ciasteczkami, ale nie ma co liczyć na komponenty, programowanie to nie układanie klocków, nie raz trzeba samemu sobie radzić, ja w ten sposób obsłużyłem stronę, która wysyła po 6 ciastek ;) na idCookieManager z 2 były problemy

0
Legalnl napisał(a)

Kazek, ciastka sie nie wyślą ;) Co najwyżej ciastko.
Ciastko czy ciastka na jedno wychodzi ważne że teoretycznie powinno wysłać.

Legalnl napisał(a)

idCookieManager to beznadziejny, bardzo prosty komponent, nie postarali się.
Już gdzieś pisałem, że w Indy 9 rzeczywiście coś było z nim nie tak natomiast w 10 jak na razie daje radę (nie miałem przypadku abym musiał samemu dodawać ciacho do nagłówków).

0

nie na jedno wychodzi, bo ciastka to kilka ciastek ;) Ciastko to jedno. Mówisz że w indy 10 obsłuży większą ilość ciastek?

0

z tego co widze to ja jestem zmuszony odpowiedziec na konkretnie zadane pytanie w temacie :

Piszę program który ma za zadanie zalogować się na pewnej stronie i pobrać różne dane, ale wyskakuje błąd coockies coś tam. Nie chce żadnego Synapse tylko jak już jakiś inny coockies manager

tak wiec odpowiedz na to pytanie brzmi na formie dodaj zwykly cookie menager od indy nastepnie kliknij na forme i skopiuj:

idHTTP1.AllowCookies := true;
IdHTTP1.Request.UserAgent := 'Mozilla/3.0 (compatible; Indy Library)';
IdHTTP1.HandleRedirects:=True;
IdHTTP1.Response.KeepAlive := True;
IdHTTP1.CookieManager := IdCookieManager1;

Koniec...
jednak dodam ze bedac twoim miejscu lepiej bym posluchal rad pana olesia, bo chyba nie masz zamiaru jechac na tym calym ""INDY"".

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