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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2010, 01:22   #1
maloy_ya
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 59
По умолчанию авторизация блог ру

доброго время суток!!после того как отмучались с регистрацией на блог ру столкнулса с проблемой последующей работы с сайтом!!
не получаеться у меня вытащить куки с ключом id_login!! попыток было масса но хоть так
Код:
idhttp1.get('http://blog.ru/login');
  IdHTTP1.AllowCookies:=True;
  c := idHTTP1.Response.RawHeaders.Values['Set-Cookie'];
  c := Copy(c,1,Pos(';',c));
  memo2.Lines.Add(c);
  idHTTP1.Request.CustomHeaders.Add('Cookie: '+c);

хоть вот так

  idhttp1.get('http://blog.ru/login?&login='+edit2.text+'%40mail.ru&password='+edit3.text+'&remember=on&authorize.x=0&authorize.y=0');
  c := idHTTP1.Response.RawHeaders.Values['Set-Cookie'];
  c := Copy(c,1,Pos(';',c));
  memo2.Lines.Add(c);
  idHTTP1.Request.CustomHeaders.Add('Cookie: '+c);
не почучается его вытащить!!в первом случае я вообще не добираюсь до него!!А во втором меня выкидывает из проги так как далее следут редирект, либо же если поставить idhttp1.HandleRedirects := true; то я проскакиваю страничку откуда нужно его выдрать!! Может кто нибудь разъяснит как выдрать нужную мне кукису!!!

зы делфи7 инди 10,2,3
maloy_ya вне форума Ответить с цитированием
Старый 23.08.2010, 01:46   #2
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Код:
var
 s : string;

s := idhttp1.Response.RawHeaders.Text;
А дальше парсить.
kangreon вне форума Ответить с цитированием
Старый 23.08.2010, 11:50   #3
maloy_ya
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 59
По умолчанию

все тот так просто я не добираюсь до нужных мне куков из-за редиректа!!
maloy_ya вне форума Ответить с цитированием
Старый 23.08.2010, 18:21   #4
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Код:
function GetCookieValue(text, name : string): string;
var
  i : Integer;
begin
  i := Pos(name,text);
  Result := Copy(text,i,PosEx(';',text,i)-i);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  login, pass, cookie : string;
  http : TIdHTTP;
begin
  http := TIdHTTP.Create;
  http.HandleRedirects := False;
  http.Get('http://blog.ru/');
  cookie := http.Response.RawHeaders.Text;
  http.Request.CustomHeaders.Text := 'Cookie: '+ GetCookieValue(cookie,'CSID');
  login := 'kangreon';
  pass := '';
  try
    http.Get('http://blog.ru/login?&login='+ login +'&password='+ pass +'&remember=on');
  except
  end;
  cookie := http.Response.RawHeaders.Text;
  Edit1.Text := GetCookieValue(cookie,'id_login');
  http.Free;
end;
kangreon вне форума Ответить с цитированием
Старый 26.08.2010, 14:23   #5
maloy_ya
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 59
По умолчанию

спасибо за помощь но он по прежнему мне выкидывает ошибку 302 found и стопорит выполнение проги а если редирект выставить в тру то ничего не находит!!!может есть какие-то нюансы??
maloy_ya вне форума Ответить с цитированием
Старый 26.08.2010, 18:10   #6
maloy_ya
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 59
По умолчанию

попробовал надурить вот так:
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
  login, pass, cookie : string;
  http : TIdHTTP;
  sl: TStringList;
  res: string;
begin
  http := TIdHTTP.Create;
  http.HandleRedirects := true;
  http.RedirectMaximum:=0;
  //http.ConnectTimeout:=3000;
  http.Get('http://blog.ru/');
  cookie := http.Response.RawHeaders.Text;
  http.Request.CustomHeaders.Text := 'Cookie: '+ GetCookieValue(cookie,'CSID');
  login := 'opopopop';
  pass := '123456xz';
  try
    http.Get('http://blog.ru/login?&login='+ login +'%40mail.ru&password='+ pass +'&remember=on');
  except
  end;
  cookie := http.Response.RawHeaders.Text;
  memo2.Clear;
  memo2.Lines.Add(GetCookieValue(cookie,'CSID'));
  memo3.Clear;
  memo3.Lines.Add(GetCookieValue(cookie,'id_login'));
  //http.Free;
  HTTP.Request.CustomHeaders.add('Cookie: '+memo2.Text);
  HTTP.Request.CustomHeaders.Add('Cookie: '+memo3.Text);
  sl := TStringList.Create;
  sl.add('backurl=');
  sl.Add('login=opopopop@mail.ru');
  sl.Add('password=123456xz');
  sl.Add('remember=on');
  sl.Add('authorize.x=0');
  sl.Add('authorize.y=0');
  http.RedirectMaximum:=20;
  try
    res:=http.post('http://blog.ru/login',sl);
  except
  end;
  memo1.Lines.Add(res);
  memo1.Lines.SaveToFile('res.txt');
end;
но всеровно не получаеться!!тоесть куки он выдерает!!но когда отправляю они уже другие и не пойму может я не правильно отправляю???
maloy_ya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блог-схема Олеся20 Помощь студентам 27 14.04.2010 14:26
Блог-схема Олеся20 Помощь студентам 0 13.04.2010 19:24
Видео блог veter_s_morya Свободное общение 3 03.01.2010 04:58
Блог Роман Радер О форуме и сайтах клуба 11 13.12.2008 15:30