Здравствуйте, у меня проблема возникла. Короче. Юзаю инди10, связку idhttp+idcookiemanager. Нужно авторизоваться сначала на маил.ру, прочесть письмо с восстановлением пароля, затем пройти по ссылке на fotostrana.ru и поменять пасс. ПОСЛЕ СМЕНЫ ПАССА ДАЮТСЯ АВТОРИЗАЦИОННЫЕ КУКИСЫ. На маил.ру без проблем авторизуюсь, кукисы принимаются, отдаются, все работает. А вот при смене пароля на фотострана.ру я по снифферу вижу что моей программе передаются заголовки с кукисами, а вот долбаный idcookiemanager их пропускает мимо, то есть даже не добавляет себе в cookiecolletion. Хотя даже если сделать showmessage( idhttp1.Response.RawHeaders.Text ) то там будет видно какой заголовок послал сайт и что там есть несколько строк Set-Cookie:...... Что делать? Очень нужно закончить прогу, спасайте!
Пруф: выполните такую процедуру, и НИ ОДНОГО ПОЛУЧЕННОГО КуКИСА она не покажет( ЗЫ. прошу пароль в запросе не менять, иначе мне его ретривить придется =( 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;
я пробовал вручную! выдирал их из RawHeaders и вставлял через addCookie/addCookie2 !!! домен указывал и fotostrana.ru и .fotostrana.ru Он их тупо не передавал на сайт!!! Шоделатьблеа?!
я те грю я вручную тоже в idhttp.request прописывал и вручную в idcookiemanager addcookie делал. все без толку