Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
borockov
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 171
#1

Delphi и авторизация Post запросом

30.05.2013, 12:58. Просмотров 1129. Ответов 16
Метки нет (Все метки)

Здравствуйте друзья, подскажите пожалуйста где я ошибаюсь.Пытаюсь авторизоваться методом Post на сайте subscribe.ru вот код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button1Click(Sender: TObject);
var
a:TStringList;
b:string;
begin
a:=TstringList.Create;
a.Add('email='+Edit1.Text);
a.Add('pass'+Edit2.Text);
b:=IdHTTP1.Post('http://stat.clickfrog.ru/pages_visited_action.php',a); //подглядел снифером
if Pos('member/logout?',b)<>0 then ShowMessage('Авторизация прошла успешно')
      else
        ShowMessage('Ошибка авторизаций');
      end;
Все нормально компилируется, но блин авторизация не проходит, я только учусь работать с Post Get поэтому могу не понимать самых элементарных моментов) заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2013, 12:58
Ответы с готовыми решениями:

Отправка XML Post запросом
Здравствуйте! Пытаюсь сделать кнопку для выписки счета на вебмани. Формат...

Отправить файл Post запросом
пытаюсь загрузить файл на rghost.ru unit Unit1; interface uses ...

Не компилируется код с запросом Post
Доброе время суток. Я пытаюсь создать программу, отправляющую Post-запрос на...

Получить страницу, сгенерированную post запросом
Пишу программу для поиска материалов на сайте. Вот код посылки post запроса:...

Отправка файла Post запросом (Indy)
Есть кнопка: &quot;Загрузить фон&quot;. При нажатии кнопки открывается опендиалог,...

16
HanDi
892 / 339 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
30.05.2013, 15:42 #2
Ты уверен, что там только 2 параметра? email и pass? Проверь, возможно не все передаешь.
0
borockov
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 171
30.05.2013, 16:43  [ТС] #3
Если я правильно посмотрел то передаются вот эти параметры: см.вложения.
0
Миниатюры
Delphi и авторизация Post запросом  
HanDi
892 / 339 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
30.05.2013, 16:47 #4
Ну так а ты передаешь совершенно другие значения и у тебя другие параметры.
0
borockov
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 171
30.05.2013, 17:23  [ТС] #5
В вышеописанный код я и эти параметры и значения подставлял, все равно авторизация не проходит
0
HanDi
892 / 339 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
30.05.2013, 17:27 #6
Опять же, отследи через сниффер что твоя программа конкретно отсылает и получает, тогда уже можно будет судить где ошибка, может с кодировкой проблемы (что вряд ли, но все же).
0
borockov
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 171
30.05.2013, 18:15  [ТС] #7
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button1Click(Sender: TObject);
var
a:TStringList;
b:string;
begin
a:=TstringList.Create;
a.Add('credential_0'+edit1.text);
a.Add('credential_1'+Edit2.Text);
//a.Add('destination'+Edit3.Text);
b:=IdHTTP1.Post('http://subscribe.ru/MEMBERLOGIN',a);
if Pos('logout?',b)<>0 then ShowMessage('Авторизация прошла успешно')
      else
        ShowMessage('Ошибка авторизаций');
Label1.Caption:=IntToStr(IdHTTP1.ResponseCode);
end;
 
end.
Немного подлатал код. Отследил снифером что, куда отсылает программа. Честно говоря я немного удивлен, в запросе пусто, почему то программа ничего не отправляет, и честно говоря я немного озадачен.
0
MrOnlineCoder
Всегда онлайн
399 / 355 / 134
Регистрация: 07.04.2013
Сообщений: 1,666
Завершенные тесты: 2
30.05.2013, 20:49 #8
А вы поставили HandleRedirects в idHttp на true?
0
borockov
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 171
30.05.2013, 22:45  [ТС] #9
Цитата Сообщение от MrOnlineCoder Посмотреть сообщение
А вы поставили HandleRedirects в idHttp на true?
Да, конечно.Так же использовал функцию парсинга, и и отдельно вытаскивал обработчик запроса, но все равно ничего не выходит, т.е с программы не отправляются вообще никакие данные.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button3Click(Sender: TObject);
var
Strpage,ssylka:string;
data:TStringList;
begin
 strpage:=IdHTTP1.Get('http://subscribe.ru');
 ssylka:=Pars('<form action="/',Strpage,'');
 data:=TStringList.Create;
 Data.Add('credential_0'+edit1.text);
 Data .Add('credential_1'+Edit2.Text);
 //Data.Add('destination');
 Strpage:=IdHTTP1.Post(ssylka,data);
 if Pos('Logout',Strpage) <> 0 then
  ShowMessage('Авторизация прошла успешно')
      else
        ShowMessage('Ошибка авторизаций');
Label1.Caption:=IntToStr(IdHTTP1.ResponseCode);
end;
 
end.
Функция парсинга
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function Pars(T_, ForS, _T: string): string;
var
  a, b: integer;
begin
  Result := ''; // обнуляем результат
  if (T_ = '') or (ForS = '') or (_T = '') then
    Exit; // если параметры пусты, то выходим
  a := Pos(T_, ForS); // ищем заданный параметр T_ в строке ForS
  if a = 0 then // если не нашли, то
    Exit // выходим
  else // иначе
    a := a + Length(T_); // а=а+длина T_
  ForS := Copy(ForS, a, Length(ForS) - a + 1); // ForS = копируем из ForS начиная с символа а символов длина Fors - a + 1
  b := Pos(_T, ForS); // ищем 2ую часть
  if b > 0 then // если нашли, то
    Result := Copy(ForS, 1, b - 1); // результат функции равен копированию из ForS начиная с индекса 1 символов b - 1
// получается, что функция просто обрезает всё, что до параметра T_ и параметр T_, и параметр _T и всё, что после него
end;
0
HanDi
892 / 339 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
30.05.2013, 23:05 #10
Сразу и не заметил я:

Delphi
1
2
Data.Add('credential_0'+edit1.text);
Data.Add('credential_1'+Edit2.Text);
На:

Delphi
1
2
 Data.Add('credential_0='+edit1.text);
 Data.Add('credential_1='+Edit2.Text);
1
borockov
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 171
30.05.2013, 23:26  [ТС] #11
Спасибо данные теперь передаются, но все равно авторизовываться не хочет. Вот заскринил то что передает программа и то что передает браузер, и там и там все одинаково
0
Миниатюры
Delphi и авторизация Post запросом   Delphi и авторизация Post запросом  
HanDi
892 / 339 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
31.05.2013, 00:03 #12
Попробуй подключить куки и укажи реферер, ну те данные, которые слева в табличке поста номер 3.
0
borockov
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 171
31.05.2013, 00:18  [ТС] #13
Цитата Сообщение от HanDi Посмотреть сообщение
Попробуй подключить куки и укажи реферер, ну те данные, которые слева в табличке поста номер 3.
Подключить куки имеешь ввиду AllowCookies=true или добавить IdCookieManager1?
0
HanDi
892 / 339 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
31.05.2013, 10:46 #14
borockov, И то и другое
0
borockov
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 171
31.05.2013, 13:38  [ТС] #15
Цитата Сообщение от HanDi Посмотреть сообщение
borockov, И то и другое
я не знаю правильно ли я сделал:
Delphi
1
2
IdHTTP1.AllowCookies:=True;
IdHTTP1.CookieManager:=IdCookieManager1;
Вроде почитал немного в инете, и пишут что достаточно указать idhttp cookiemanager. Но скорее всего что то неправильно рас авторизация все равно не проходит
0
chizz
983 / 501 / 101
Регистрация: 19.03.2013
Сообщений: 3,104
Записей в блоге: 19
Завершенные тесты: 1
31.05.2013, 13:49 #16
Вот POST запрос, который отправляется. Пароли передаются незашифрованными о_О.
1
Миниатюры
Delphi и авторизация Post запросом  
borockov
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 171
31.05.2013, 14:07  [ТС] #17
я через http analyzer смотрел, там че то такой полной инфы не выдает. Большое спасибо за помощь, я попробую еще покопаться)
0
31.05.2013, 14:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2013, 14:07

Авторизация в Instagram посредством POST
Необходимо авторизоваться в Instagram &quot;юзерскими&quot; методами, т.е. через...

Авторизация на сайте POST + SSL
Здравствуйте! Писал я программу, которая парсит сайт 1С и проверяет новые...

Авторизация на mail.ru через POST запрос
Добрый день. Программа должна при вводе логина и пароля авторизоваться на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru