в общем пишу авторегер для Mywot.com и при передачи пост запроса ответ пишется типа куки не включены(хотя allowcoockies стои true) и при отправке пост запроса передается только одна кука, хотя в заголовке 3 setcoockie. вот что отправляется: Code: GET /en/signup HTTP/1.1 Content-Type: text/html Host: www.mywot.com Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: ru-RU,ru;q=0.9,en;q=0.8 User-Agent: Opera/9.80 (Windows NT 6.1; U; MRA 5.8 (build 4133); ru) Presto/2.8.131 Version/11.11 вот что приходит в ответ: Code: HTTP/1.1 200 OK Set-Cookie: SESSf6ce7e3db235723091e59a653e7d96f2=mqsmnh78m6s5736sd4gma1ksv3; path=/; domain=.mywot.com Set-Cookie: wot_lang=en; expires=Mon, 12-Dec-2011 07:53:24 GMT; path=/ Set-Cookie: fbcsrf_122398707842455=7f31f13c21f1fae05f81c31ec1926722; expires=Wed, 15-Jun-2011 08:53:24 GMT Expires: Sun, 19 Nov 1978 05:00:00 GMT Last-Modified: Wed, 15 Jun 2011 07:53:24 GMT Cache-Control: store, no-cache, must-revalidate Cache-Control: post-check=0, pre-check=0 Content-Type: text/html; charset=utf-8 X-FRAME-OPTIONS: DENY Transfer-Encoding: chunked Date: Wed, 15 Jun 2011 07:53:24 GMT Server: lighttpd и при отправке пост запроса отправляется только одна кука: Code: POST /en/signup HTTP/1.0 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 413 Host: www.mywot.com Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: ru-RU,ru;q=0.9,en;q=0.8 User-Agent: Opera/9.80 (Windows NT 6.1; U; MRA 5.8 (build 4133); ru) Presto/2.8.131 Version/11.11 Cookie: wot_lang=en name=Edit1&mail=Edit2&pass[pass1]=Edit3&pass[pass2]=Edit3&recaptcha_challenge_field=03AHJ%5FVuvmdWnOgbFkqtKpQEcga729WrDycWEIxEkbebtLXIEIfsWMGFtHk3pLXHHC8pl5jLPUiQRidXotP9pf3DbGCYaDhrnf9LOAJvQk3E3MkXp6MhPsHW%5FIqvgchennYSjUzDdbyA3dmSP5ZvRuW1SwKrjD0XuZww&recaptcha_response_field=Edit4&captcha_token=36b08067ab8fe43f4326124eeafd982&terms=1&op=Create%2Bnew%2Baccount&robots=&form_id=wotuser%5Faccountform%5Fregister& вот код: Code: var Form1: TForm1; token:string; var sesid,chlng:string; implementation {$R *.dfm} function parse(s,begs,ends:string):string; var ts:string; begin ts:=copy(s,1,pos(ends,s)-1); result:=copy(ts,pos(begs,ts)+length(begs),length(ts)-pos(begs,ts)-1); end; procedure TForm1.Button1Click(Sender: TObject); var str:tmemorystream; jpg:Tjpegimage; begin memo1.Text:=utf8toansi(idhttp1.Get('http://www.mywot.com/en/signup')); sesid:=parse(memo1.Text,'<div class="description"><script type="text/javascript" src="','"></script>'); memo2.text:=utf8toansi(idhttp1.Get(sesid)); chlng:=memo2.Text; delete(chlng,1,pos('challenge : ',chlng)+length('challenge : ')); chlng:=copy(chlng,1,pos(',',chlng)); chlng:=copy(chlng,1,length(chlng)-2); str:=tmemorystream.Create; idhttp1.get('https://www.google.com/recaptcha/api/image?c='+chlng,str); str.Position:=0; jpg:=Tjpegimage.create; jpg.LoadFromStream(str); image1.Picture.Assign(jpg); jpg.Free; str.Free; token:=memo1.text; delete(token,1,pos('id="edit-captcha-token" value="',token)+length('id="edit-captcha-token" value="')); token:=copy(token,1,pos('"',token)-1); end; procedure TForm1.Button2Click(Sender: TObject); var pd:tstringlist; begin pd:=tstringlist.Create; pd.Clear; pd.Add('name='+edit1.Text); pd.Add('mail='+edit2.Text); pd.Add('pass[pass1]='+edit3.Text); pd.Add('pass[pass2]='+edit3.Text); pd.Add('recaptcha_challenge_field='+chlng); pd.Add('recaptcha_response_field='+edit4.Text); pd.Add('captcha_token='+token); pd.Add('terms=1'); pd.Add('op=Create+new+account'); pd.Add('robots='); pd.Add('form_id=wotuser_accountform_register'); memo3.Text:=idhttp1.Post('http://www.mywot.com/en/signup',pd); end; собствено вопрос: как сделать чтобы в POST запросе передавались ВСЕ куки. может быть это глюк библиотеки и стоит перейти на indy 10? а то с сокетами возиться и вручную куки выдирать както не охото.
а с чего ты взял, что он без кукиманагера пытатся? Честно говоря не пробовал, но мне кажется, что куки тогда вообще не должны приниматься...
Согласен что indy 9 - глюченная, но она не разу не помешала мне нормально работать с куками. Если делать все верно по документациям, все будет ровно.
у меня была ситуация, когда не мог залогиниться на сайт. ооочень долго мучился с той же проблемой, что у ТС пока не обновил Indy. и ничего не меняя все заработало.
ок. поставлю indy 10. насчет куки менеждера я его поставил и привязал к idhttp в свойствах. за пример: +5 1n0y'ю
поставил radstudio 2010 и теперь другая проблема возникла: не работает ssl. хотя в delphi 7 работало. т.к. в indy 10 вместо idssliohandler компонент idssliohandleropenssl версию ssl указал туже самую (свойство method) - ssl3 дллки теже что изспользовал в проэкте delphi 7 и настроил idhttp точно также как в старом проэкте. что только не менял - не работает ssl - возникает exception "could not load ssl library". ос win7 даже не знаю как быть.