![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
здравствуйте.
я авторизируюсь вк. с помощью регэкспр. Код:
Enter:=TStringList.Create;
Enter.add('act=login');
Enter.Add('al_test=3');
Enter.Add('email='+edit1.text);
Enter.Add('pass='+edit2.Text);
uri:=TIdUri.Create('http://vkontakte.ru');
idhttp1.RedirectMaximum:=2;
reg:=TRegExpr.create;
reg.Expression:='[0-9a-z]{60}';
temp:=idhttp1.post('http://login.vk.com', Enter);
temp:=idhttp1.response.RawHeaders.GetText;
reg.Exec(temp);
if reg.Match[0]<>'' then
begin
application.processmessages ;
idcookiemanager1.AddCookie('remixsid='+reg.Match[0],'http://vk.com/');
messageDlg('yes', mtInformation, [mbOk], 0);
end
else
begin
messageDlg('no', mtInformation, [mbOk], 0);
end;
end;это на одной кнопке. все пашет норм! потом на другой кнопки есть код Код:
memo1.text:=idhttp1.get('HTTP://vk.com');что делать? надо куки поставить? подскажите плз |
|
#2
|
||||
|
||||
|
на XE TIdHTTP куки не поддерживает?
|
|
#3
|
|||
|
|||
|
на семерке ща пишу)
|
|
#4
|
||||
|
||||
|
про Delphi 7 потому и не спрашиваю, что знаю что поддерживает. и не надо никаких TRegExpr.
|
|
#5
|
|||
|
|||
|
есть другой вариант?
|
|
#6
|
||||
|
||||
|
ну а если вообще никакого огорода не городить? т.е.:
IdHTTP1.CookieManager:=nil; IdHTTP1.AllowCookies:=True; IdHTTP1.Post(); IdHTTP1.Get(); |
|
#7
|
|||
|
|||
|
мне именно авторизация нужна) даже снифиром пытался не смот) тока регэкспром получилось)
|
|
#8
|
||||
|
||||
|
ну дай какой-нибудь логин контакта в личку?
|
|
#9
|
|||
|
|||
|
Код:
Function VKLogin (Login,Password:string):Boolean;
var
VKAuth:THTTPSend;
PostData:TStringStream;
begin
VKAuth:=THTTPSend.Create;
VKAuth.Headers.Clear;
VKAuth.Cookies.Clear;
VKAuth.MimeType:='application/x-www-form-urlencoded';
PostData:=TStringStream.Create('');
PostDATA.WriteString('act=login');
PostDATA.WriteString('&q=1');
PostDATA.WriteString('&al_frame=1');
PostDATA.WriteString('&expire=');
PostDATA.WriteString('&captcha_sid=');
PostDATA.WriteString('&captcha_key=');
PostDATA.WriteString('&from_host=vk.com');
PostDATA.WriteString('&from_protocol=http');
//PostDATA.WriteString('&ip_h=4e2351239677358141');
PostDATA.WriteString('&email='+Login);
PostDATA.WriteString('&pass='+Password);
VKAuth.Document.LoadFromStream(POSTDATA);
VKAuth.HTTPMethod('POST','https://login.vk.com/?act=login');
Form1.Memo1.Lines.Add(VKAuth.Cookies.Text);
if VKAuth.Cookies.Count > 3 then
begin
Result:=True;
end
else
Result:=False; |
|
#10
|
|||
|
|||
|
[Error] Unit1.pas(29): Invalid compiler directive: 'VKAuth'
и как вызвать эту функцию? как капчу вывести? на форму? |
|
#11
|
|||
|
|||
|
Капча тут причем?
Это пример через Synapse.... через Indy аналогично... Я делал для себя когда то, но я не ловил капчу из за неверных вводов логин/пароль ) так что не знаю как вывести капчу) |
|
#12
|
|||
|
|||
|
я когдато сам пытался на подобии сделать только через инди,но не прокотило)
|
|
#13
|
|||
|
|||
|
Мне тебя жаль
![]() AllowRedirect:=True и тебя ждет успех ) |
|
#14
|
|||
|
|||
|
не, не пашет)
|
|
#15
|
|||
|
|||
|
Конечно у тебя ничего не пашет
))Твой первый пост даже копипаст) |