Проблемы с куками в idhttp

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SultanOFF, 20 Jan 2010.

  1. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    156
    Likes Received:
    6
    Reputations:
    0
    Здравствуйте. Авторизуюсь на сайте с помощью подобного кода:
    Code:
    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);
    авторизуюсь успешно, все окей но почему то куки не сохраняются. Хотя вернее будет сказать сохраняются, но допустим если к тому коду добавить еще
    Code:
    mmo1.Text:= http.get('http://xxx.com/');
    то уже как будто Я не авторизован. Хотя вроде во всех мануалах где Я читал написано что достаточно так прописать
    Code:
    CM := TidCookieManager.Create(Http);
    Http.AllowCookies := true;
        Http.CookieManager := CM;
    и куки с проблем не будет..отнюдь.. Даже незнаю в чем может быть проблема..Помогите пожалуйста

    Инди последней версии, делфи 7
     
  2. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    937
    Likes Received:
    162
    Reputations:
    27
    Обрати внимание, что правильно писать не так:
    Code:
    Http.Request.Host:='xxx.com/';
    а так:
    Code:
    Http.Request.Host:='xxx.com';
    Если не ошибаюсь, то куки в TidCookieManager зависят от хоста. То есть каждому хосту принадлежат свои куки.

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

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    156
    Likes Received:
    6
    Reputations:
    0
    а как это проверить подскажи пожалуйста :)
     
  4. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    иногда сервер выдает кривые куки. например когда я прогу для контакта писал, я исправлял куки. там было domain=.vkontakte.ru точка в начале домена недопустима и idhttp не может хранить такие куки.
     
  5. DeepSy

    DeepSy New Member

    Joined:
    17 Jan 2010
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    мдаа. хоть не в теме, но спасибо.
     
  6. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    хотя это неверное предположение. Если бы такая ошибка была, то и автоизация бы не прошла.. прошу прощения
     
  7. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    а в сниффере куки отображаются?
     
  8. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    иногда куки могут не отображаться в ответных заголовках от сервера. в общем HTTP Analyzer тебе в помощь)
     
  9. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    156
    Likes Received:
    6
    Reputations:
    0
    куки могу просмотреть, но толку от этого? Весь все равно повторно авторизоваться с ними не получается хз почему
     
  10. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    ну блин постоянно же все спрашивают. Точно не помню, но там где-то в CookieCollection надо устанавливать что-то вроде Path := '/'