![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с логином на сайте (Indy) [D7, WinXP]
Usov © (2009-10-28 14:21:00)Здравствуйте, не получается залогиниться на сайте letitbit.net, может кто подскажет какую то идею.
Delphi7 + Indy 10.2.3
На форме лежит IdHTTP1 и к нему привязан IdCookieManager1, в компонента IdHTTP1 включены свойсва AllowCookies и HahdleRedirects. Логин и пароль в примере реальные и их можно использовать.
procedure TForm1.Button1Click(Sender: TObject);
var
sl: TStringList;
begin
sl := TStringList.Create;
// получаем куки
Memo1.Text := IdHTTP1.Get(' http://letitbit.net/login.php');
Memo1.Lines.SaveToFile('c:\1.html');
sl.Add('log=etotest');
sl.Add('pas=etotest');
sl.Add('inout=%C2%F5%EE%E4);
// логинимся
IdHTTP1.Request.Referer := ' http://letitbit.net/login.php';
Memo1.Text := IdHTTP1.Post(' http://letitbit.net/tmpl/login.php', sl);
Memo1.Lines.SaveToFile('c:\2.html');
// необязательно, проверка залогинились ли
Memo1.Text := IdHTTP1.Get(' http://letitbit.net');
Memo1.Lines.SaveToFile('c:\3.html');
sl.Free;
end;
Запросы и ответы сниферил, все идентичное броузеру, но логина не происходит. Сдругими сайтами проблем небыло.
Usov (2009-10-31 18:17:00) [1]Да, старый добрый IdCookieManager :) твоему уже больше 2 лет.
Я и сам на последнюю не хочу переходить, нашел для себя самую стабильную и лишь изредка подшаманиваю ее.
sniknik (2009-10-31 12:11:00) [2]> или переделывать IdCookieManager или парсить вручную куки.
или поставить "правильный" indy
только обратил внимание
> Delphi7 + Indy 10.2.3
у меня последняя "родная" версия 10.1.5 (т.е. то что лежало у них на сайте перед тем как проект закрыли. его кто то вроде стал поддерживать но я за этим не слежу...)
p.s. файлы реально отличаются.
sniknik (2009-10-30 20:09:00) [3]> покажи пожалуйста свой IdCookieManager.pas
http://letitbit.net/download/1244.c10ff015f46ee53bda2c56194/IdCookieManager.pas.html
Usov (2009-10-30 18:53:00) [4]проблема решена: IdCookieManager заточен под работу с куками стандарта RFC2109 а на этом сайте куки не соответствуют этому стандарту, поэтому необходимо или переделывать IdCookieManager или парсить вручную куки.
Usov (2009-10-30 01:01:00) [5]покажи пожалуйста свой IdCookieManager.pas
вот мой: http://usov.ucoz.ru/files/IdCookieManager.pas
sniknik (2009-10-29 23:21:00) [6]> разбираюсь пока дальше...
до сих пор? блин, а я то решил что вопрос "шутка", ну и типа скрытой рекламы сайту...
все логиниться, только вот это sl.Add('inout=%C2%F5%EE%E4); убери.
Usov (2009-10-29 22:27:00) [7]нашел что куки неправильно обрабатываются, вернее idCookieManager игнорирует поступившие куки из-за того что в куке имя домена начинается не с точки (зависит от версии idCookieManager), и еще проблема - пришлось ограничить количество редиректов единицей так как почемуто происходит бесконечный редирект на одну и туже страницу, разбираюсь пока дальше...
Usov (2009-10-29 22:27:00) [8]нашел что куки неправильно обрабатываются, вернее idCookieManager игнорирует поступившие куки из-за того что в куке имя домена начинается не с точки (зависит от версии idCookieManager), и еще проблема - пришлось ограничить количество редиректов единицей так как почемуто происходит бесконечный редирект на одну и туже страницу, разбираюсь пока дальше...
Дмитрий Белькевич (2009-10-29 18:03:00) [9]>Запросы и ответы сниферил, все идентичное броузеру, но логина не происходит. Сдругими сайтами проблем небыло.
Что-то неверится. Байты везде одинаковые (с). Что-то отдаёте не так в заголовках http.
Usov (2009-10-29 09:37:00) [10]не катит, это я прописываю в первую очередь
brother (2009-10-29 04:39:00) [11]
With IdHTTP1 do
begin
Request.UserAgent:= 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; ' +
'rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7';
end;
например...
brother (2009-10-29 04:37:00) [12]> IdHTTP1.
там есть свойство- строка идентификации - почитай какие они бывают, и прикинься например мозиллой)