-
Здравствуйте, не получается залогиниться на сайте 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;
Запросы и ответы сниферил, все идентичное броузеру, но логина не происходит. Сдругими сайтами проблем небыло. -
brother © (29.10.09 04:37) [1]> IdHTTP1.
там есть свойство- строка идентификации - почитай какие они бывают, и прикинься например мозиллой) -
brother © (29.10.09 04:39) [2]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;
например... -
не катит, это я прописываю в первую очередь
-
Дмитрий Белькевич (29.10.09 18:03) [4]>Запросы и ответы сниферил, все идентичное броузеру, но логина не происходит. Сдругими сайтами проблем небыло.
Что-то неверится. Байты везде одинаковые (с). Что-то отдаёте не так в заголовках http. -
нашел что куки неправильно обрабатываются, вернее idCookieManager игнорирует поступившие куки из-за того что в куке имя домена начинается не с точки (зависит от версии idCookieManager), и еще проблема - пришлось ограничить количество редиректов единицей так как почемуто происходит бесконечный редирект на одну и туже страницу, разбираюсь пока дальше...
-
нашел что куки неправильно обрабатываются, вернее idCookieManager игнорирует поступившие куки из-за того что в куке имя домена начинается не с точки (зависит от версии idCookieManager), и еще проблема - пришлось ограничить количество редиректов единицей так как почемуто происходит бесконечный редирект на одну и туже страницу, разбираюсь пока дальше...
-
> разбираюсь пока дальше...
до сих пор? блин, а я то решил что вопрос "шутка", ну и типа скрытой рекламы сайту...
все логиниться, только вот это sl.Add('inout=%C2%F5%EE%E4); убери. -
покажи пожалуйста свой IdCookieManager.pas
вот мой: http://usov.ucoz.ru/files/IdCookieManager.pas -
проблема решена: IdCookieManager заточен под работу с куками стандарта RFC2109 а на этом сайте куки не соответствуют этому стандарту, поэтому необходимо или переделывать IdCookieManager или парсить вручную куки.
-
> покажи пожалуйста свой IdCookieManager.pas
http://letitbit.net/download/1244.c10ff015f46ee53bda2c56194/IdCookieManager.pas.html -
> или переделывать IdCookieManager или парсить вручную куки.
или поставить "правильный" indy
только обратил внимание
> Delphi7 + Indy 10.2.3
у меня последняя "родная" версия 10.1.5 (т.е. то что лежало у них на сайте перед тем как проект закрыли. его кто то вроде стал поддерживать но я за этим не слежу...)
p.s. файлы реально отличаются. -
Да, старый добрый IdCookieManager :) твоему уже больше 2 лет.
Я и сам на последнюю не хочу переходить, нашел для себя самую стабильную и лишь изредка подшаманиваю ее.