|
|
Регистрация | << Правила форума >> | 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. |