cel
27.03.2010, 13:33
Памогите пожалуйсто сделать автаризацию, я уже неделю голову ламаю.
Вот код:
var
PageText : TStringList;
PostData : TStringList;
TempStr : string;
I : Integer;
begin
{ Создаем объекты в памяти }
HTTP := TidHTTP.Create(nil);
Cookie := TidCookieManager.Create(HTTP);
PageText := TStringList.Create;
PostData := TStringList.Create;
{ Задаем нужные параметры }
HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 MRA 5.6 (build 03278) Firefox/3.5.7 sputnik unknown';
HTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
HTTP.Request.AcceptLanguage := 'ru,en-us;q=0.7,en;q=0.3';
HTTP.Request.Connection := 'keep-alive';
HTTP.Request.Referer := 'http://vk.com/login.php';
HTTP.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
HTTP.Request.AcceptCharset := 'windows-1251,utf-8;q=0.7,*;q=0.7';
HTTP.CookieManager := Cookie;
HTTP.AllowCookies := True;
HTTP.HandleRedirects := True;
{ 1. Запрос на страницу }
HTTP.Post('http://vk.com/login.php', PostData);
{ 2. Формируем запрос }
PostData.Add('act=login');
PostData.Add('email=' + edit1.Text);
PostData.Add('pass=' + edit2.Text);
PageText.Text := HTTP.Post('http://login.vk.com/', PostData);
For I := 0 To PageText.Count -1 do
begin
If Pos('id=' + #39 + 's' + #39, PageText[I]) <> 0 Then
begin
TempStr := PageText[I];
TempStr := Copy(TempStr, Pos('value=', TempStr) +7, Length(TempStr));
Delete(TempStr, Pos(#39, TempStr), Length(TempStr));
end;
end;
{ 3. Отсылаем ключ на сервер }
PostData.Clear;
PostData.Add('op=slogin');
PostData.Add('s=' + TempStr);
HTTP.Post('http://vk.com/login.php', PostData);
HTTP.GET('http://vk.com/profile.php');
PageText.Free;
PostData.Free;
Он меня наченает кидать с профиля на логин
http://vk.com/login.php?u=1&to=cHJvZmlsZS5waHA-
cHJvZmlsZS5waHA- - base64 profile.php
Как это можно обойти,или как и куда приррутить decode base64 ?
Вот код:
var
PageText : TStringList;
PostData : TStringList;
TempStr : string;
I : Integer;
begin
{ Создаем объекты в памяти }
HTTP := TidHTTP.Create(nil);
Cookie := TidCookieManager.Create(HTTP);
PageText := TStringList.Create;
PostData := TStringList.Create;
{ Задаем нужные параметры }
HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 MRA 5.6 (build 03278) Firefox/3.5.7 sputnik unknown';
HTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
HTTP.Request.AcceptLanguage := 'ru,en-us;q=0.7,en;q=0.3';
HTTP.Request.Connection := 'keep-alive';
HTTP.Request.Referer := 'http://vk.com/login.php';
HTTP.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
HTTP.Request.AcceptCharset := 'windows-1251,utf-8;q=0.7,*;q=0.7';
HTTP.CookieManager := Cookie;
HTTP.AllowCookies := True;
HTTP.HandleRedirects := True;
{ 1. Запрос на страницу }
HTTP.Post('http://vk.com/login.php', PostData);
{ 2. Формируем запрос }
PostData.Add('act=login');
PostData.Add('email=' + edit1.Text);
PostData.Add('pass=' + edit2.Text);
PageText.Text := HTTP.Post('http://login.vk.com/', PostData);
For I := 0 To PageText.Count -1 do
begin
If Pos('id=' + #39 + 's' + #39, PageText[I]) <> 0 Then
begin
TempStr := PageText[I];
TempStr := Copy(TempStr, Pos('value=', TempStr) +7, Length(TempStr));
Delete(TempStr, Pos(#39, TempStr), Length(TempStr));
end;
end;
{ 3. Отсылаем ключ на сервер }
PostData.Clear;
PostData.Add('op=slogin');
PostData.Add('s=' + TempStr);
HTTP.Post('http://vk.com/login.php', PostData);
HTTP.GET('http://vk.com/profile.php');
PageText.Free;
PostData.Free;
Он меня наченает кидать с профиля на логин
http://vk.com/login.php?u=1&to=cHJvZmlsZS5waHA-
cHJvZmlsZS5waHA- - base64 profile.php
Как это можно обойти,или как и куда приррутить decode base64 ?