![]() |
Авторизация через Http.Post
Если не сложно киньте рабочий исходный код авторизации вконтакте желательно через метод Post и с комментами.
Вот что получилось. procedure TForm1.Button1Click(Sender: TObject); var list: TStringList; begin list:=TStringList.Create(); list.Add('u=1'); list.Add('success_url='); list.Add('fail_url='); list.Add('try_to_login=1'); list.Add('email='+Edit1.Text); list.Add('pass='+Edit2.Text); try Memo1.Lines.Text:=IdHTTP1.Post('http://login.vk.com/?act=login',list); finally list.Free; IdHTTP1.Disconnect; end; После отправки получаю в Memo1 <html> <head> <meta http-equiv='content-type' content='text/html; charset=windows-1251' /> </head> <body onload="document.getElementById('l').submit();"> <form id='l' method='post' action='http://vkontakte.ru/login.php'> <input type='hidden' name='s' id='s' value='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx' /> <input type='hidden' name='op' id='op' value='slogin' /> <input type='hidden' name='redirect' id='redirect' value='1' /> <input type='hidden' name='expire' id='expire' value='0' /> <input type='hidden' name='to' id='to' value='' /> </form> </body> </html> Нужна помощь....Знающих людей. :confused: |
тут посмотри решение проблемы:
forum.antichat.ru/thread165316.html если нужен готовый код -> пробуй это: forum.antichat.ru/thread204126.html |
Спасибо почти розобрался...
|
Я юзаю такие настройки для авторизации. (IdHttp)
http://clip2net.com/clip/m39024/1273...-clip-71kb.jpg На форме кукименеджер должен быть привязан к idhttp, handleredirects ---> true AllowCookies ---> True; код Делфи Цитата:
|
Тут есть обработка исключений типа русского пароля и пароля с пробелами :)
|
memo1.Lines.add('Cookies: '+s);
IdCookieManager1.AddCookie('remixsid='+s+ '; path=/; ','vkontakte.ru'); finally if s = '' then Можно по подробней эту часть кода обьяснить. |
Цитата:
vkontakte.ru.. дальше begin Label1.caption:='Неудачно'; end else begin Label1.caption:='Залогнлись'; end; |
IdCookieManager1.AddCookies('remixsid='+s+ '; path=/; ','vkontakte.ru');
вот эта строчка что дает? при компиляиции тут вылетает Incompatible type: 'TIdCookieManedger' and 'String' |
Цитата:
|
Для создания простого чекера акаунтов даже хватит получения кукис.
Если получил 54 значную строку значить валидный.... :rolleyes: А для того чтоб получить исходный код самой страницы с анкетой что надо? :confused: И есть ли гдето полная инфа на русском языке про коммпонент Idhhttp желательной с картинками и с видео. :confused: |
используй httpwebrequest инфы по нему много
|
|
Цитата:
|
Цитата:
str := idhttp1.Get('http://vkontakte.ru/profile.php'); |
Всё работает.
http://vk1000.ru/vkontakte.jpg |
Цитата:
|
Все получилось в Memo1 выводит код страницы.
Настройки IdHttp использовал как и Berman Вот код. procedure TForm1.Button1Click(Sender: TObject); var s,pass,str,uns: String;//переменный типа стринг outfo: TStringList; // перменная типа стринглист begin pass := StringReplace(edit2.text, ' ', '+', [rfReplaceAll, rfIgnoreCase]); outfo := TStringList.Create; //создаем пост перемменую idhttp1.Get('http://vkontakte.ru/login.php?op=a_login_attempt'); //забераем исходный текст адресса outfo.Add('act=login'); //создаем пост запрос outfo.Add('email='+edit1.text); //создаем пост запрос outfo.Add('pass='+pass); //создаем пост запрос try uns:=UTF8toANSI(idhttp1.post('http://login.vk.com/', outfo)); //отправляем пост запро на нужный адресс s:=copy(uns, 286, 56); //вытягиваем 56 значную строку finally idhttp1.Request.CustomHeaders.Add('Cookie: remixsid=' + s); //отправляем запрос str := idhttp1.Get('http://vkontakte.ru/profile.php'); //получаем исходник указаного адресса Memo1.Text:=str; // Выводим в мемо исходный код страницы више указаной IdHTTP1.Disconnect; // дисконект end end; Теперь пару вопросов.... 1. Что мы делаем тут idhttp1.Request.CustomHeaders.Add('Cookie: remixsid=' + s); 2. Что мы делаем тут pass := StringReplace(edit2.text, ' ', '+', [rfReplaceAll, rfIgnoreCase]); 3. Чтоб ввойти на другой аккаунт надо писать IdHTTP1.Disconnect; 4. Зачем это надо memo1.Lines.add('Cookies: '+s); IdCookieManager1.AddCookie('remixsid='+s+ '; path=/; ','vkontakte.ru'); Всем спасибо оказал помощь.... :rolleyes: |
Цитата:
4. Можешь убрать эти строчки. |
При использование метода Get исходный код отображается неправильно
пример <div id='coins_left'>? ??? <b>0</b> ???????????????? Заместь знаков вопроса должно писать "неиспользованных голосов." Все символы кирилицы превратились в знаки вопроса, как это испарвить? |
| Время: 18:02 |