PDA

Просмотр полной версии : [Delphi] Indy10.5.5 Авторизация ВК


cel
17.02.2010, 16:23
Памогите пожалуйсто,я пытаюсь авторизоватся в контакте,но у мнея не палучается,выскакивает ошибка EIdHTTPProtocolException 'HTTP/1.1 302 Found’,
HandleRedirects True,я не понемаю по чему может быть проблема.

var
http : Tidhttp;
s,name,id,Page : string;
post : Tstringlist;
coo : Tidcookiemanager;
compressor : tidCompressorZLib;
begin
coo := Tidcookiemanager.Create;
http := Tidhttp.Create;
http.ReadTimeout := 60000;
http.AllowCookies := true;
http.CookieManager := coo;
http.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)';
http.Request.AcceptEncoding := 'gzip,deflate';
compressor := tIdCompressorZLib.Create;
http.Compressor := compressor;
post := Tstringlist.Create;

http.get ('http://vk.com');
post.add ('op=a_login_attempt');
http.post ('http://vk.com/login.php', post);
post.Clear;

post.add ('email=' + sedit1.Text);
post.add ('pass=' + sedit2.Text);
post.add ('expire=');
post.add ('vk=1');
post.add ('act=login');
s := http.post ('http://login.vk.com/', post);
post.Clear;

post.Add ('op=slogin');
post.Add ('redirect=1');
post.Add ('expire=0');
post.Add ('to=');
post.Add ('s=' + copy (s, 536, 56));
Page:=http.post ('http://vk.com/login.php', post);
post.Free;
Coo.Free;
http.Free;

RedFern.89
17.02.2010, 17:47
302 - это перенаправление. Установи следующее свойство для автоматической переадрисовки. и тогда эксепшен не будет вываливаться
HTTP.HandleRedirects := True;

так же можешь в парметрах сменить с redirect=1 на redirect=0. Так, как при установленном значении 1, ты при успешной авторизации попадаешь на страницу /profile.php

cel
17.02.2010, 20:53
спс, но щас начела выскакивать ЕIdConnClosedGracefully

rankor777
17.02.2010, 20:59
В Indy есть баг, из-за которого куки не сохраняются, если у домена точка вначале (например, .vkontakte.ru). Так что не мучайся с этим поделием, и юзай, например, Overbyte ICS

RedFern.89
17.02.2010, 21:41
или стучи мне в асю 440-905-748, разберемся) у меня тож был такой баг и я исправил TidCookieManager

Fliplab
18.02.2010, 13:12
А вообще заходи на сайт vkopt'a И качай модуль Auth. он как раз для авторизации в контакте.либо авторизируйся на вап версии.там по проще