![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
кто подскажет как авторизоваться на сайте vkontakte.ru... нужно отправить пост-запрос как я понял... а в каком виде? и как? вообще не в курсе...
или дайте ссылку на какую нибудь статью по post-запросам в delphi... т.к. я ни чего в гугле не нашел ..если не сложно то приведите код составления и отправки пост запроса (vkontakte.ru) - авторизация... |
|
#2
|
||||
|
||||
|
Вроде есть открытый исходник программы vktools, даже группа есть в ВКонтакте. Она тебе поможет в авторизации. Но есть одна проблема: эту программу написал какой-то лох так, что сложно понять исходный код.
|
|
#3
|
||||
|
||||
|
задам вопрос в уже до этого созданной мной теме... запрос послал, проблема в том что при удачной авторизации всё проходит нормально и в memo1 выводиться текст: что "авторизация прошла успешно" а при попытке авторизоваться например с неправильным паролем или логином: вылезает ошибка
![]() вот код: Код:
procedure TForm1.Button1Click(Sender: TObject);
var
data:tstringlist;
PageProfile:string;
error:boolean;
begin
IdHTTP1.AllowCookies:=true;
IdHTTP1.HandleRedirects:=false;
data:=tstringlist.create;
data.Add('email=blablabla@rambler.ru');
data.Add('pass=**************');
data.Add('expire=');
data.Add('vk=');
error:=false;
try
PageProfile:=IdHTTP1.Post('http://login.vk.com/?act=login', data);
except error:=true;
end;
if
not(error)
then
begin
data.Clear;
data.Add('s='+Copy(PageProfile, Pos('value', PageProfile)+7, 56));
data.Add('op=slogin'); data.Add('redirect=1');
data.Add('expire=0');
data.Add('to=');
IdHTTP1.HandleRedirects:=true;
try
PageProfile:=IdHTTP1.Post('http://vkontakte.ru/login.php', data);
except
end;
Memo1.Lines.Add('Авторизация удалась');
end
else
Memo1.Lines.Add('Авторизация не удалась');
Data.Free;
end;вот что вылазит при попытке авторизоваться при неправельном пароле или логине: скриншот: http://www.delphisources.ru/forum/at...d=129857369 2 ..., а не выводит текст в memo1... ![]() Последний раз редактировалось eXplorer, 24.02.2011 в 21:59. |
|
#4
|
|||
|
|||
|
Ну дык отлавливай эксепшн:
Код:
try
//Здесь пытаемся подключиться
except
on e : exception do
begin
Memo1.Lines.Add('Ошибка!!!');
Memo1.Lines.Add(e.message);
end;
end; |
|
#5
|
||||
|
||||
|
Большое спасибо!
завтра попробую) возникнут проблемы ещё какие-нибудь... отпишусь |
|
#6
|
||||
|
||||
|
у IdHTTP1 свойство HandleRedirects выставь в True. из-за не правильных логине/пароле тебя 302 кодом (ResponseCode) перебрасывает на страницу с ошибкой авторизации.
|
|
#7
|
||||
|
||||
|
Цитата:
при HandleRedirects:=true всё равно ошибка лезит.... а насчёт того, что отловить эксепшн ((( это я плохо понял... никогда не пользовался и незнаю что такое и куда это писать Цитата:
можно полный код вместе с тем что я писал(( а то пробовал и ни как не могу разобраться... что и куда... |
|
#8
|
||||
|
||||
|
у IdHTTP1 свойство HandleRedirects выставь в True перед вызовом Post()!!! а лучше в Object Inspector.
|
|
#9
|
||||
|
||||
ставил в true перед post'ом и в инспекторе щас стоит тоже; только теперь почему то в memo1 при попытки авторизоваться с неправильным паролем или логином, выводиться все равно 'Авторизация удалась' ![]() |
|
#10
|
|||
|
|||
|
Вот почитай тут, здесь подробно написано
http://koderzone.3dn.ru/news/api_vko.../2011-02-20-87 |
|
#11
|
||||
|
||||
|
Извеняюсь конечно может я просто не понимаю, но выше указанная ссылка мне ни чего не дала... ибо в той статье немного о другом реч идёт ИМХО
решил проблему сам... сделал проще как мне кажется: Код:
procedure TForm1.Button1Click(Sender: TObject);
var
data:tstringlist;
PageProfile:string;
error:boolean;
begin
idHTTP1.HandleRedirects:=true;
IdHTTP1.AllowCookies:=true;
data:=tstringlist.create;
data.Add('email=blablabla@rambler.ru');
data.Add('pass=****************);
data.Add('expire=');
data.Add('vk=');
error:=false;
try
PageProfile:=IdHTTP1.Post('http://login.vk.com/?act=login', data);
finally
end;
if Pos('onload="try', PageProfile)<>0 then
Memo1.Lines.Add('Авторизация удалась')
else
Memo1.Lines.Add('Авторизация не удалась');
Data.Free;
end; |
|
#12
|
|||
|
|||
|
я особо просто не вчитывался, привел тебе примерчик авторизации, но сейчас понимаю проблема в другом. Мой тебе совет try except
![]() |
|
#13
|
||||
|
||||
|
спасибо!) всем спасибо!
![]() |
|
#14
|
|||
|
|||
|
Здравствуйте. Мне нужно было научиться программно авторизовываться на сайтах. Авторизовываться я указанным тут методом научился, но возник вопрос. После авторизации на большинстве сайтов Не получается осуществить переход на страницу из сайта
Пытаюсь сохранить и передать Cookies указываю параметры, (беру из Сниффера) =============================================== Response.Text:=''; Idhttp1.Request.UserAgent Idhttp1.Request.Host Idhttp1.Request.Accept Idhttp1.Request.AcceptLanguage Idhttp1.Request.AcceptEncoding Idhttp1.Request.Referer Idhttp1.Request.Connection Пытаюсь загрузить Код сайта в переменную Response.Text:=IdHttp1.Get('Сайт.php/любая страница'); Смотрю Memo1.Text:=Response1.Text; И Мемо показывает мне значок (Похожий на 'Фиг тебе,!!! а не код страницы') ================================================= Вопрос в том, как правильно авторизоваться, чтобы можно было гулять по сайту. (если вопросы поставил нубские или глупо сформулировал (мало ли кого раздражают такие постановки задач) - заранее извиняюсь) Спасибо за внимание, Заранее спасибо за помощь Последний раз редактировалось daslex, 03.05.2011 в 22:12. |