Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Авторизация на сайте idHTTP.Post


Автор: MbIcJIuBcJIyX 11.7.2009, 23:03
Приветствую smile

задачка такая, нужно просто проделать авторизацию на сайте посредством idHTTP.Post

работает на mail.ru, но не работает на нужном мне сайте http://night.dzzzr.ru/tver/


форма авторизации на страничке http://night.dzzzr.ru/tver/:

Код

<form method=post>
<input type=hidden name=action value=auth>
<div style="padding-bottom: 9px;  width: 165px;">
<input type="text" name=login class="InputOne" onFocus="if(!clr){this.value='';clr=1}" value="имя пользователя" style="width: 165px;"></div>
<div><input type="password" name=password class="InputOne" value="********" onFocus="if(!clr1){this.value='';clr1=1}">
<input type=submit value="ok" class=submit style="height:18px;"></div></form>


тоесть здесь нам нужны переменные:
action = auth
login = мой логин
password = мой пароль

смущает только отсутсвие параметра action у тега <form>, видимо это значит что передача данных будет выполняться на текущую страницу




теперь сам код: 


Код

var
  sl: TStringList;
  ms:   TMemoryStream;
begin
  sl := TStringList.Create;
  ms := TMemoryStream.Create;

  sl.Clear;
  sl.Add('action=auth');
  sl.Add('login=ЛОГИН');
  sl.Add('password=ПАРОЛЬ');

  try
    idHTTP.Post('http://night.dzzzr.ru/tver/',sl, ms);
    ms.SaveToFile('c:\1.html');
  except
  end;

  ms.Free;
  sl.Free;
end;



в результате ничего не сохраняется в ms.SaveToFile('c:\1.html');
однако снифером видно что авторизированная страничка все таки загружается в программу.

кстати если удалить из idHTTP.Request.Reffer := 'http://www.night.dzzzr.ru/' (заполняю в Desing Time),
тоесть оставить это свойство пустым, то в c:\1.html просто загружается страничка (http://www.night.dzzzr.ru/) без всяких изменений.


вопрос, как же мне поймать авторизированную страничку? ведь снифер ее видет, а моя программа нет smile


Автор: Romikgy 11.7.2009, 23:27
у мя 
Цитата(MbIcJIuBcJIyX @  11.7.2009,  22:03 Найти цитируемый пост)
idHTTP.Request.Reffer

здесь http://night.dzzzr.ru/tver/ такое...

Автор: MbIcJIuBcJIyX 11.7.2009, 23:48
Цитата(Romikgy @ 11.7.2009,  23:27)
у мя 
Цитата(MbIcJIuBcJIyX @  11.7.2009,  22:03 Найти цитируемый пост)
idHTTP.Request.Reffer

здесь http://night.dzzzr.ru/tver/ такое...

все.. разобрался smile

нубыло после post сделать get нужной страницы, вот так:
Код


  try
    idHTTP.Post('http://night.dzzzr.ru/tver/',sl, ms);
    s := idHTTP.Get('http://night.dzzzr.ru/tver/?section=anons');
  except

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)