Я знаю что этого полно в нете, но у меня один вопрос, я прохожу авторизацию за таким кодом: PHP: function SetCookies(Raw: string): string; var PosCook: Integer; Cook: string; begin Cook:= ''; Cook:= 'Cookie: '; PosCook:= Pos('Set-Cookie:', Raw); while PosCook<>0 do begin Delete(Raw, 1, PosCook-1); Cook:= Cook + Copy(Raw, 12, Pos(';', Raw)-11); Delete(Raw, 1, Pos(';', Raw)); PosCook:= Pos('Set-Cookie:', Raw); end; Result:= Cook+'remixlang=0;'; end; procedure TForm1.Button1Click(Sender: TObject); var http: TIdHTTP; Data: TStringList; Cookies: string; begin HTTP:= TIdHTTP.Create(Self); HTTP.HandleRedirects:= True; HTTP.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1'; try HTTP.Get('http://login.vk.com/?act=login&q=1&al_frame=1&from_host=vkontakte.ru&email='+Edit1.Text+'&pass='+Edit2.Text); except end; Cookies:= SetCookies(HTTP.Response.RawHeaders.Text); if Pos('remix', Cookies)<>0 then ShowMessage('Авторизовались'); HTTP.Free; end; Чтобы мне оставатся на сайте мне нужно посылать все пост и гет запросы на сайт через тотже idhttp, или это не важно, или это вообще не так делается???
Cookies:= SetCookies(HTTP.Response.RawHeaders.Text); Если ты записываешь в строку куки то потом используй их... HTTP.Request.RawHeades:=Cookies; //и делай запросы типа http.get('http://vkontakte.ru/id12345'); //бутут передаватся кукисы которые ты получил.. //И естественно чтобы очистить куки после завершения нужных действий. HTTP.Request.RawHeaders.Clear; все просто..
Кукисы немогут быть "Встроены"... Печеньки можно получить и обработать. А вот в компоненте IdHTTPEx не так все просто... сейчас там проблемы с очисткой...
mr_walker, чтото у меня не выходит, когда перехожу на новею страницу, получаю ответ, там я не вошел. Вот код: PHP: procedure TForm1.Button3Click(Sender: TObject); var //Data: TStringList; Cookies: string; begin //HTTP:= TIdHTTP.Create(Self); IdHTTP2.HandleRedirects:= True; IdHTTP2.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1'; try IdHTTP2.Get('http://login.vk.com/?act=login&q=1&al_frame=1&from_host=vkontakte.ru&email='+Edit1.Text+'&pass='+Edit2.Text); except end; Cookies:= SetCookies(IdHTTP2.Response.RawHeaders.Text); IdHTTP2.Request.RawHeaders.Text:=Cookies; if Pos('remix', Cookies)<>0 then ShowMessage('Авторизовались'); //HTTP.Free; end; procedure TForm1.Button4Click(Sender: TObject); var vk:WideString ; begin vk:=IdHTTP2.get('http://vkontakte.ru/id12345'); memo1.Text:= vk; end;
это нужно вставить куда, перед этим: vk:=IdHTTP2.get('http://vkontakte.ru/id12345'); или гдето в другом месте???
Вообще индейкой не пользуюсь, попробуй синапс, парсишь куки и каждый запрос с этими куками, куда проще?
вот так сделай... Code: procedure TForm1.Button3Click(Sender: TObject); var //Data: TStringList; Cookies: string; begin //HTTP:= TIdHTTP.Create(Self); IdHTTP2.HandleRedirects:= True; IdHTTP2.AlllowCookies:=false; ///bla-bla-bla...