Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с куками в idhttp 
:(
    Опции темы
SultanOFF
Дата 20.1.2010, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 23.3.2008

Репутация: нет
Всего: нет



Здравствуйте. Авторизуюсь на сайте с помощью подобного кода:
Код

Http := TIdHTTP.Create(Self);
    CM := TidCookieManager.Create(Http);
    responders:=TStringList.Create;
    Http.AllowCookies := true;
    Http.CookieManager := CM;

    Http.HandleRedirects := true;
        Http.Request.Host:='otlishnik.com/';
    Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
    Http.Request.Accept:='Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    Http.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
    Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
    Http.Request.Referer:='http://otlishnik.com/';
mmo1.Text:= http.Post('http://otlishnik.com/', responders);
 авторизуюсь успешно, все окей но почему то куки не сохраняются. Хотя вернее будет сказать сохраняются, но допустим если к тому коду добавить еще
Код

mmo1.Text:= http.get('http://otlishnik.com/');

то уже как будто Я не авторизован. Хотя вроде во всех мануалах где Я читал написано что достаточно так прописать
Код

 CM := TidCookieManager.Create(Http);
Http.AllowCookies := true;
    Http.CookieManager := CM;
 и куки с проблем не будет..отнюдь.. Даже незнаю в чем может быть проблема..Помогите пожалуйста

Инди последней версии, делфи 7
PM MAIL   Вверх
Akella
Дата 20.1.2010, 16:39 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Я не уверен, с печеньками не работал вплотную. Но вопрос напрашивается, а где, собственно, код сохранения печенек? Печеньки-то должны сохраняться на диске, разве нет?
PM MAIL   Вверх
SultanOFF
Дата 20.1.2010, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 23.3.2008

Репутация: нет
Всего: нет



Цитата

Я не уверен, с печеньками не работал вплотную. Но вопрос напрашивается, а где, собственно, код сохранения печенек? Печеньки-то должны сохраняться на диске, разве нет?

насколько Я понял читая мануалы и ответы на подобные вопросы этого достаточно
Код

CM := TidCookieManager.Create(Http);
Http.AllowCookies := true;
    Http.CookieManager := CM;
 
PM MAIL   Вверх
M1ndAction
Дата 20.1.2010, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 19.1.2008

Репутация: нет
Всего: нет



Цитата

то уже как будто Я не авторизован

А вы уверены, что авторизуетесь? По какому признаку вы определяете, что прошли авторизацию?
У некоторых сайтов в кукисах хост передается с точкой, например, ".vkontakte.ru", и поэтому авторизация не проходит. У меня, когда возникла такая ситуация, я вручную добавлял кукисы в TidCookieManager, предварительно удалив паразитную точку smile
Так что советую вам проверить этот момент, причина может быть именно в этом.

Либо причина может быть еще в другом - не сохраняется соединение - нужно в опциях TdiHttp установить Keep-Alive в True.
PM MAIL   Вверх
Akella
Дата 20.1.2010, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(SultanOFF @  20.1.2010,  16:46 Найти цитируемый пост)
Я понял читая мануалы и ответы на подобные вопросы этого достаточно

а где физически сохраняются куки?
PM MAIL   Вверх
SultanOFF
  Дата 21.1.2010, 04:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 23.3.2008

Репутация: нет
Всего: нет



Цитата

А вы уверены, что авторизуетесь? По какому признаку вы определяете, что прошли авторизацию?
 ну как бэ анализирую полученный html код.
Цитата

Так что советую вам проверить этот момент, причина может быть именно в этом.
 а как можно проверить какой хост?

Цитата

Либо причина может быть еще в другом - не сохраняется соединение - нужно в опциях TdiHttp установить Keep-Alive в True. 
 попробую

Цитата

а где физически сохраняются куки? 
 хм...Даже не предполагаю
PM MAIL   Вверх
Akella
Дата 21.1.2010, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(SultanOFF @  21.1.2010,  04:42 Найти цитируемый пост)
а где физически сохраняются куки? 
 хм...Даже не предполагаю 

Я в том смысле, что сохраняются ли они вообще? Я бы на твоём месте немного почитал и посмотрел примеры работы с куками.
PM MAIL   Вверх
SultanOFF
Дата 21.1.2010, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 23.3.2008

Репутация: нет
Всего: нет



Цитата

Я в том смысле, что сохраняются ли они вообще? Я бы на твоём месте немного почитал и посмотрел примеры работы с куками. 
  вроде сохраняются, но не уверен. Как проверить? Все что есть в рунете о куках в инди Я прочел
PM MAIL   Вверх
M1ndAction
Дата 21.1.2010, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 19.1.2008

Репутация: нет
Всего: нет



Цитата

а как можно проверить какой хост?

Можно посмотреть либо в заголовках ответа в самом TidHttp (поле Set-Cookie):

Код

  s := idNews.Response.RawHeaders.CommaText;
  k := Pos('Set-Cookie:', s);

и дальше читаем все, что нужно.

Либо через сниффер (что удобнее на мой взгляд, да и в будущем пригодится).
Выглядеть будет примерно так:
Код

Set-Cookie: dsoftwareznikuzll=1264100389; path=/; expires=Fri, 21-Jan-2011 18:59:49 GMT; domain=.site.com;


как видите, в значении параметра domain лишняя точка.

Но раз вы говорите, что по коду страницы видно, что вы авторизовались, значит скорее всего дело в Keep-Alive, как я писал выше (но, конечно, могут быть и другие причины).
PM MAIL   Вверх
Akella
Дата 21.1.2010, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(SultanOFF @  21.1.2010,  15:36 Найти цитируемый пост)
Все что есть в рунете о куках в инди Я прочел 

А тут в закреплённой теме вверху есть книга по инди на русском. Читал?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.