Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2012, 15:55   #1
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию Авторизация ВК. Проблема с CookieManager

Пишу прогу в Delphi XE для авторизации вконтакте. На форме одна кнопка, idHttp, IdCookieManager, IdAntiFreeze (что б не зависало). Всего один Unit.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdAntiFreezeBase, IdAntiFreeze, IdCookieManager,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    IdCookieManager1: TIdCookieManager;
    IdAntiFreeze1: TIdAntiFreeze;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    function authvk(l,p:string):boolean;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.authvk(l, p: string): boolean;
var
 s, c, remixchk, remixsid: string;
 i: Integer;
 cookie:Tidcookiemanager;
 freeze:TIdAntiFreeze;
 http: TIdHTTP;
begin
cookie:=Tidcookiemanager.Create(self);
http := TIdHTTP.Create(self);
http.CookieManager:=cookie;
freeze:=TIdAntiFreeze.Create(self);
http.AllowCookies := False;
http.HandleRedirects := False;
try
s:=HTTP.get('http://vk.com/login.php?email='+l+'&pass='+p);
except
if (http.ResponseCode=302) then begin
 c := http.Response.RawHeaders.Text;
 i := Pos('remixchk', c) + 9;
 remixchk := Copy(c, i, length(c));
 remixchk := Copy(remixchk, 1, pos(';',remixchk)-1);
 i := Pos('remixsid', c) + 9;
 remixsid := Copy(c, i, length(c));
 remixsid := Copy(remixsid, 1, pos(';',remixsid)-1);
 http.Request.CustomHeaders.Text := 'Cookie: remixchk='+remixchk +'; remixsid='+remixsid;
 http.CookieManager.AddCookie('remixchk='+remixchk+'; remixsid='+remixsid,'http://vk.com');
 s:=http.get('http://vk.com'+http.Response.Location);
 end;
 end;
 if (pos('Добро пожаловать',s)>0) or (pos('Вход',s)>0) then result:=false else begin result:=true;
 s:=copy(s,pos('',s)-1);
showmessage(s);
 end;
freeandnil(http);
freeandnil(cookie);
freeandnil(freeze);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if authvk('ваш логин','ваш пароль') then showmessage('Авторизовались!!') else showmessage('Не смогли вы авторизоваться!!!');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.

Потом я нажимаю F9 и оно выдает ошибку в этой строке:
http.CookieManager.AddCookie('remix chk='+remixchk+'; remixsid='+remixsid,'http://vk.com');
Ошибка:[DCC Error] Unit1.pas(56): E2003 Undeclared identifier: 'AddCookie'

Потом я поменял http.CookieManager.AddCookie на http.CookieManager.AddCookies.
Но теперь ошибка: [DCC Error] Unit1.pas(56): E2010 Incompatible types: 'TIdCookieManager' and 'string'

Что делать?



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 18.07.2012 в 16:08.
igrok111 вне форума Ответить с цитированием
Старый 18.07.2012, 16:56   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Что делать?
Прочесть справку по методам idCookieManager в XE. Они отличаются от тех, что были D7.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация на сайте (проблема с Cookie) ZverBlin Работа с сетью в Delphi 1 25.03.2012 18:56
Проблема с (авторизация в модальном окне) Vitaliy> JavaScript, Ajax 5 20.07.2011 07:14
Авторизация synapse проблема с location Евгений79 Работа с сетью в Delphi 8 29.05.2011 08:40
Обычная авторизация или авторизация на уровне браузера? calugin Безопасность, Шифрование 0 13.01.2011 00:34
Ребята помогите IdHTTP1.CookieManager !!! sandra33 Работа с сетью в Delphi 0 02.06.2009 14:10