PDA

Просмотр полной версии : Проблемы с куками в idhttp


SultanOFF
20.01.2010, 17:43
Здравствуйте. Авторизуюсь на сайте с помощью подобного кода:Http := TIdHTTP.Create(Self);
CM := TidCookieManager.Create(Http);
responders:=TStringList.Create;
Http.AllowCookies := true;
Http.CookieManager := CM;
Http.HandleRedirects := true;
Http.Request.Host:='xxx.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://xxx.com/';
mmo1.Text:= http.Post('http://xxx.com/', responders); авторизуюсь успешно, все окей но почему то куки не сохраняются. Хотя вернее будет сказать сохраняются, но допустим если к тому коду добавить ещеmmo1.Text:= http.get('http://xxx.com/');то уже как будто Я не авторизован. Хотя вроде во всех мануалах где Я читал написано что достаточно так прописатьCM := TidCookieManager.Create(Http);
Http.AllowCookies := true;
Http.CookieManager := CM; и куки с проблем не будет..отнюдь.. Даже незнаю в чем может быть проблема..Помогите пожалуйста

Инди последней версии, делфи 7

Chrome~
20.01.2010, 18:49
Обрати внимание, что правильно писать не так:
Http.Request.Host:='xxx.com/';
а так:
Http.Request.Host:='xxx.com';

Если не ошибаюсь, то куки в TidCookieManager зависят от хоста. То есть каждому хосту принадлежат свои куки.

Проверь, одинаковые ли у тебя хосты перед вызовами Get и Post запросов.

SultanOFF
21.01.2010, 05:44
а как это проверить подскажи пожалуйста :)

RedFern.89
22.01.2010, 11:39
иногда сервер выдает кривые куки. например когда я прогу для контакта писал, я исправлял куки. там было domain=.vkontakte.ru точка в начале домена недопустима и idhttp не может хранить такие куки.

DeepSy
22.01.2010, 11:49
мдаа. хоть не в теме, но спасибо.

RedFern.89
22.01.2010, 12:10
хотя это неверное предположение. Если бы такая ошибка была, то и автоизация бы не прошла.. прошу прощения

RedFern.89
22.01.2010, 12:15
а в сниффере куки отображаются?

RedFern.89
22.01.2010, 12:18
иногда куки могут не отображаться в ответных заголовках от сервера. в общем HTTP Analyzer тебе в помощь)

SultanOFF
22.01.2010, 18:21
куки могу просмотреть, но толку от этого? Весь все равно повторно авторизоваться с ними не получается хз почему

desTiny
22.01.2010, 18:31
ну блин постоянно же все спрашивают. Точно не помню, но там где-то в CookieCollection надо устанавливать что-то вроде Path := '/'