Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Проблема с куками. idhttp


Автор: Vetlblya 28.4.2010, 13:05
авторизуюсь:
Код

try
         idHttp.CookieManager := IdCookieManager;
         idHTTP.HandleRedirects := true;
         idhttp.AllowCookies:=true;
         LoginInfo := TStringList.Create;
         Response := TStringStream.Create('');
         LoginInfo.Add('id='+edit1.Text);
         LoginInfo.Add('pass='+edit2.Text);
         idhttp.Post('http://localhost/cgi-bin/avt.cgi',LoginInfo,Response);
         Showmessage(Response.DataString);
        finally
         begin
         Response.Free;
         LoginInfo.Free;
         end;
        end;



проверяю кук:
Код

for i := 0 to idHttp.CookieManager.CookieCollection.Count - 1 do
  memo1.Lines.Add(idhttp.CookieManager.CookieCollection.Items[i].CookieText);

инфа о куке выдается.

работаю с другим скриптом:
Код

        try
         LoginInfo := TStringList.Create;
         Response := TStringStream.Create('');
         LoginInfo.Add('bla');
         LoginInfo.Add('bla');
         idhttp.Post('http://localhost/cgi-bin/bla.cgi',LoginInfo,Response);
         Showmessage(Response.DataString);
        finally
         begin
         Response.Free;
         LoginInfo.Free;
         end;
        end;

из скрипта передается 
Код

print "Content-Type:text/html\n\n";
#и еще принты с обычным текстом

кук становится пустым или вообще пропадает.

через Мозилу все работает отлично. 
чего сделать чтобы кук оставался?

Автор: Proxin 28.4.2010, 13:19
это может быть связано с точкой в начале адреса сайта в куке. у инди с этим проблема, не понимает он, как их сохранять. или, может, забыли просто поставить allowcoolkies:=true и назначить кукименеджер.

Автор: Vetlblya 28.4.2010, 13:30
Цитата(Proxin @ 28.4.2010,  13:19)
это может быть связано с точкой в начале адреса сайта в куке. у инди с этим проблема, не понимает он, как их сохранять. 

вот что возвращается из кукиса: Session=ebb1e38616b670d8398d377c9d3f4c22; path=/; domain=localhost
Цитата

или, может, забыли просто поставить allowcoolkies:=true и назначить кукименеджер.

так:
idHttp.CookieManager := IdCookieManager;
idHTTP.HandleRedirects := true;
idhttp.AllowCookies:=true;

AllowCookies, как я понимаю, должен указываться только при авторизации?

Добавлено через 6 минут и 24 секунды
кстати, Delphi7 Indy10

Автор: Vetlblya 28.4.2010, 14:35
ура! ура! разобрался! в скрипте, когда кук формировал, написал время его жизни до закрытия клиента. сейчас поменял время жизни на 1 час и все стало работать!!!!

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