Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.02.2011, 12:16
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию программная авторизация на сайте...

кто подскажет как авторизоваться на сайте vkontakte.ru... нужно отправить пост-запрос как я понял... а в каком виде? и как? вообще не в курсе... или дайте ссылку на какую нибудь статью по post-запросам в delphi... т.к. я ни чего в гугле не нашел ..
если не сложно то приведите код составления и отправки пост запроса (vkontakte.ru) - авторизация...
__________________
Ответить с цитированием
  #2  
Старый 22.02.2011, 12:43
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

Вроде есть открытый исходник программы vktools, даже группа есть в ВКонтакте. Она тебе поможет в авторизации. Но есть одна проблема: эту программу написал какой-то лох так, что сложно понять исходный код.
Ответить с цитированием
  #3  
Старый 24.02.2011, 21:56
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

задам вопрос в уже до этого созданной мной теме... запрос послал, проблема в том что при удачной авторизации всё проходит нормально и в 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...
Изображения
Тип файла: jpg Снимок.JPG (26.9 Кбайт, 38 просмотров)
__________________

Последний раз редактировалось eXplorer, 24.02.2011 в 21:59.
Ответить с цитированием
  #4  
Старый 24.02.2011, 23:14
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,020
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну дык отлавливай эксепшн:

Код:
try
  //Здесь пытаемся подключиться
except
  on e : exception do
    begin
      Memo1.Lines.Add('Ошибка!!!');
      Memo1.Lines.Add(e.message);
    end;
end;
Ответить с цитированием
  #5  
Старый 24.02.2011, 23:27
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

Большое спасибо! завтра попробую) возникнут проблемы ещё какие-нибудь... отпишусь
__________________
Ответить с цитированием
  #6  
Старый 25.02.2011, 08:47
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

у IdHTTP1 свойство HandleRedirects выставь в True. из-за не правильных логине/пароле тебя 302 кодом (ResponseCode) перебрасывает на страницу с ошибкой авторизации.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 25.02.2011, 17:39
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

Цитата:
Сообщение от NumLock
у IdHTTP1 свойство HandleRedirects выставь в True. из-за не правильных логине/пароле тебя 302 кодом (ResponseCode) перебрасывает на страницу с ошибкой авторизации.

при HandleRedirects:=true всё равно ошибка лезит....

а насчёт того, что отловить эксепшн ((( это я плохо понял... никогда не пользовался и незнаю что такое и куда это писать

Цитата:
Ну дык отлавливай эксепшн:
плохо понял код... можно полный код вместе с тем что я писал(( а то пробовал и ни как не могу разобраться... что и куда...
__________________
Ответить с цитированием
  #8  
Старый 25.02.2011, 19:05
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

у IdHTTP1 свойство HandleRedirects выставь в True перед вызовом Post()!!! а лучше в Object Inspector.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 25.02.2011, 19:19
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

ставил в true перед post'ом и в инспекторе щас стоит тоже; только теперь почему то в memo1 при попытки авторизоваться с неправильным паролем или логином, выводиться все равно 'Авторизация удалась'
__________________
Ответить с цитированием
  #10  
Старый 25.02.2011, 19:33
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Вот почитай тут, здесь подробно написано
http://koderzone.3dn.ru/news/api_vko.../2011-02-20-87
Ответить с цитированием
  #11  
Старый 25.02.2011, 20:47
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

Извеняюсь конечно может я просто не понимаю, но выше указанная ссылка мне ни чего не дала... ибо в той статье немного о другом реч идёт ИМХО

решил проблему сам... сделал проще как мне кажется:
Код:
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  
Старый 25.02.2011, 20:51
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

я особо просто не вчитывался, привел тебе примерчик авторизации, но сейчас понимаю проблема в другом. Мой тебе совет try except
Ответить с цитированием
  #13  
Старый 25.02.2011, 22:24
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

спасибо!) всем спасибо!
__________________
Ответить с цитированием
  #14  
Старый 30.04.2011, 17:20
daslex daslex вне форума
Прохожий
 
Регистрация: 30.04.2011
Сообщения: 1
Репутация: 10
По умолчанию Как быть если нужны действия после такой авторизации?

Здравствуйте. Мне нужно было научиться программно авторизовываться на сайтах. Авторизовываться я указанным тут методом научился, но возник вопрос. После авторизации на большинстве сайтов Не получается осуществить переход на страницу из сайта

Пытаюсь сохранить и передать 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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter