COOKIEMANAGER не берет куки

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Apeckou, 16 Jul 2012.

  1. Apeckou

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

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    Здравствуйте, у меня проблема возникла.

    Короче. Юзаю инди10, связку idhttp+idcookiemanager.
    Нужно авторизоваться сначала на маил.ру, прочесть письмо с восстановлением пароля, затем пройти по ссылке на fotostrana.ru и поменять пасс.
    ПОСЛЕ СМЕНЫ ПАССА ДАЮТСЯ АВТОРИЗАЦИОННЫЕ КУКИСЫ.

    На маил.ру без проблем авторизуюсь, кукисы принимаются, отдаются, все работает.
    А вот при смене пароля на фотострана.ру я по снифферу вижу что моей программе передаются заголовки с кукисами, а вот долбаный idcookiemanager их пропускает мимо, то есть даже не добавляет себе в cookiecolletion. Хотя даже если сделать showmessage( idhttp1.Response.RawHeaders.Text ) то там будет видно какой заголовок послал сайт и что там есть несколько строк Set-Cookie:......

    Что делать? Очень нужно закончить прогу, спасайте!
     
  2. Apeckou

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

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    Пруф: выполните такую процедуру, и НИ ОДНОГО ПОЛУЧЕННОГО КуКИСА она не покажет(
    ЗЫ. прошу пароль в запросе не менять, иначе мне его ретривить придется =(

    Code:
    
    procedure abc;
    var http:TIDHTTP;
        cook:TIDCOOKIEMANAGER;
        html:string;
        head:string;
        link:string;
        u,h:string;
        strs:TStringList;
        i:integer;
    begin;
    http:=TIDHTTP.create(nil);
    cook:=TIDCOOKIEMANAGER.create(nil);
    
    http.HandleRedirects:=true;
    http.AllowCookies:=true;
    http.cookiemanager:=cook;
    
    link:='http://fotostrana.ru/user/changepassword/?u=39626756&h=e3fb5bbe86895c&utm_campaign=email_notify&utm_content=link&utm_medium=email_146&utm_source=event_0';
    
    
    try
    html:=http.Get(link);
    except;
    end;
    
    u:=copy(html,pos('name="u" value="',html)+16,length(html));
    u:=copy(u,1,pos('"',u)-1);
    h:=copy(html,pos('name="h" value="',html)+16,length(html));
    h:=copy(h,1,pos('"',h)-1);
    
    showmessage('Получили значения U='+u+'; H='+h+'; отправка...');
    
    strs:=TStringList.create;
    strs.add('user_password=dug05rus');
    strs.add('user_password_confirm=dug05rus');
    strs.add('u='+u);
    strs.add('h='+h);
    strs.Add('to_url=/');
    strs.Add('submitted=1');
    
    try
    html:=http.post('http://fotostrana.ru/user/changepassword/',strs);
    head:=http.Response.RawHeaders.Text;
    except;
    end;
    
    
    for i:=0 to http.CookieManager.CookieCollection.Count-1 do
    showmessage(http.CookieManager.CookieCollection.Items[i].CookieText);
    
    showmessage('конец. были ли получены кукисы?');
    
    http.free;
    cook.free;
    strs.free;
    end;
    
    
     
    #2 Apeckou, 16 Jul 2012
    Last edited: 17 Jul 2012
  3. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Работай с кукисами в ручную.
     
  4. Apeckou

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

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    я пробовал вручную!
    выдирал их из RawHeaders и вставлял через addCookie/addCookie2 !!!
    домен указывал и fotostrana.ru и .fotostrana.ru
    Он их тупо не передавал на сайт!!!

    Шоделатьблеа?!
     
  5. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    В ручную их добавлять....
    Ручная работа с кукисами подразумевает и это тоже.
     
  6. Apeckou

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

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    я те грю я вручную тоже в idhttp.request прописывал
    и вручную в idcookiemanager addcookie делал. все без толку
     
  7. TankreD

    TankreD New Member

    Joined:
    15 Jul 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Сколько не пробовал idHTTP всегда глючил.
    легче работать еще на более низком уровне.
     
  8. fuckyoupig

    fuckyoupig Member

    Joined:
    1 Mar 2011
    Messages:
    0
    Likes Received:
    11
    Reputations:
    2
    По твоему примеру печеньки получены нормально
     
  9. Apeckou

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

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    сменил ТРИ разных версии 10й инди, на третий раз заработало!