в общем пишу сменщик паролей icq: получаю страницу авторизации, парсю karmasynckey, отправляю post запроос и получаю raised exception 500 internal server error. к сожалению https запросы можно проследить только из internet explorer, а в программе все делается в слепую и нет возможности перхватить запрос из программы. вот код: Code: var Form1: TForm1; key:string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var s:string; c:string; i:integer; begin idhttp1.ReadTimeout:=99999; s:=idhttp1.Get('https://www.icq.com/login/ru?dest=%252Fchange-password%252Fru'); memo1.Text:=s; delete(s,1,pos('<input type="hidden" name="karmaSyncKey" value="',s)+length('<input type="hidden" name="karmaSyncKey" value="')-1); s:=copy(s,1,pos('"',s)-1); edit1.Text:=s; key:=s; for i := 0 to idcookiemanager1.CookieCollection.Count - 1 do c:=c+idcookiemanager1.CookieCollection.Items[i].CookieText; showmessage(c); end; procedure TForm1.Button2Click(Sender: TObject); var p:tstringlist; begin memo1.Lines.Clear; p:=tstringlist.Create; p.Add('karmaSyncKey='+key); p.Add('dest=%252Fchange-password%252Fru'); p.Add('emailuin=620157997'); p.Add('password=btf7xkjb'); p.Add('karmaSyncKey='+key); p.Add('dest=%252Fchange-password%252Fru'); p.Add('emailuin=620157997'); p.Add('password=btf7xkjb'); p.Add('remember_me='); memo1.text:=idhttp1.Post('https://www.icq.com/login/ru?dest=%252Fchange-password%252Fru',p); end; может кто подскажет что не так? из браузера все нормально работает
а в чем проблема перехата заголовков из твоей программы? Юзаю HTTP Analyzer Full V.5 ни разу проблем перехвата любоо браузера или моей программ не возникало
1. Не дублируйте параметры запроса, это снифер глючит (не надо два раза добавлять 'karmaSyncKey, номер и пароль) 2. Добавьте заловки запроса (юзерагент, реферер и т.д.),
2ZdezBilYa : все передаваемые браузером заголовки выставил в request, параметры теперь передаю только по одному разу - по прежнему вылазит exception. если надо вот сорц http://zalil.ru/31333309
в общем делал так: запускаешь Analyzer запускаешь циклические запросы в своей проге запускаешь Analyzer кнопочкой старт. работает не всегда, но если потанцевать, то увидеть результат можно
IdCookieManager1 - не нужно у IdHTTP1 почему-то в Request.UserAgent стоит Code: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* Разве это похоже на Юзер-Агент? Поставьте это: Code: Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10 Убираем у обоих запросов в конце: "?dest=%252Fchange-password%252Fru" (должно остаться только "https://www.icq.com/login/ru") У параметра "dest" тоже убираем значение Добавляем параметр: Code: p.Add('remember_me='); Profit!