Старый 11.03.2012, 20:01   #1
Вадимка
RAM 64MB
 
Аватар для Вадимка
 
Регистрация: 09.02.2010
Сообщений: 94
Вадимка скоро придёт к известностиВадимка скоро придёт к известности
Вадимка вне форума

По умолчанию indy и cookies


очередной раз подводит меня инди с куками,сил больше нет...
indy 9 , менеджек куки прикручивал.
ситуация такая, прохожу авторизацию на сайте (vk.com), успешно, получаю cookies, всё чётко, но вот они не устанавливаются...
написал функцию парсинга , получаю все значения cookies в переменные типа стринг , но не могу ничего дальше с ними сделать...
если нужны исходняки, могу кинуть...
  Ответить с цитированием
Ответ: indy и cookies
Старый 11.03.2012, 20:03   #2
mironich
RAM 256MB
 
Аватар для mironich
 
Регистрация: 22.11.2010
Сообщений: 2,026
mironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личность
mironich вне форума
По умолчанию Ответ: indy и cookies

Цитата:
Сообщение от Вадимка Посмотреть сообщение
очередной раз подводит меня инди с куками,сил больше нет...
indy 9 , менеджек куки прикручивал.
ситуация такая, прохожу авторизацию на сайте (vk.com), успешно, получаю cookies, всё чётко, но вот они не устанавливаются...
написал функцию парсинга , получаю все значения cookies в переменные типа стринг , но не могу ничего дальше с ними сделать...
если нужны исходняки, могу кинуть...
Кидай исходники сюда, кукисы иногда глючат в куки менеджере, я использую свой , раньше в ручную обрабатывал.
  Ответить с цитированием
Ответ: indy и cookies
Старый 11.03.2012, 20:15   #3
Вадимка
RAM 64MB
 
Аватар для Вадимка
 
Регистрация: 09.02.2010
Сообщений: 94
Вадимка скоро придёт к известностиВадимка скоро придёт к известности
Вадимка вне форума
По умолчанию Ответ: indy и cookies

функция парсинга
Код:
function SetCookies(Raw: string): string;
var PosCook: Integer;
Cook: string;
begin
Cook:= '';
Cook:= 'Cookie: ';
PosCook:= Pos('Set-Cookie:', Raw);
while PosCook<>0 do
begin
Delete(Raw, 1, PosCook-1);
Cook:= Cook + Copy(Raw, 12, Pos(';', Raw)-11);
Delete(Raw, 1, Pos(';', Raw));
PosCook:= Pos('Set-Cookie:', Raw);
end;
Result:= Cook;
end;
ну и сама процедура авторизации
Код:
var
http: TIdHTTP;
list,: TStringList;
i:integer;
begin
HTTP:= TIdHTTP.Create(Self);
HTTP.HandleRedirects:= true;
HTTP.Request.UserAgent:= 'Safari/535.1';
try
HTTP.Get('http://login.vk.com/?act=login&q=1&al_frame=1&from_host=vk.com&email=email@yandex.ru&pass=qwerty');
except
end;
Coocies:= SetCookies(HTTP.Response.RawHeaders.Text);
if Pos('remix', Coocies)<>0 then ShowMessage('авторизовались');
list:=tstringlist.create;
list.text:=(Coocies);
for i:=0 to list.count-1 do
if pos('remixsid=',list.strings[i])>0 then
begin
remixsid:=copy(list.strings[i],pos('remixsid=',list.strings[i])+9,(pos(';remixlang=0;',list.strings[i]))-(pos('remixsid=',list.strings[i])+9));
end;
list.free;
end;
  Ответить с цитированием
Ответ: indy и cookies
Старый 11.03.2012, 20:34   #4
mironich
RAM 256MB
 
Аватар для mironich
 
Регистрация: 22.11.2010
Сообщений: 2,026
mironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личностьmironich - просто великолепная личность
mironich вне форума
По умолчанию Ответ: indy и cookies

Цитата:
Cook:= Cook + Copy(Raw, 12, Pos(';', Raw)-11);
Поч 12?

Код:
var
    http: TIdHTTP;
    list: TStringList;
    i:integer;
begin
   HTTP:= TIdHTTP.Create(Self);
   HTTP.HandleRedirects:= true;
   HTTP.Request.UserAgent:= 'Safari/535.1';
try
       HTTP.Get('http://login.vk.com/?act=login&q=1'
                   +  '&al_frame=1&from_host=vk.com&'
                   + 'email=email@yandex.ru&pass=qwerty');
except
  ShowMessage('Ошибка....' );
end;
        Coocies:= SetCookies(HTTP.Response.RawHeaders.Text);
        if Pos('remix', Coocies) <> 0 then 
                 ShowMessage('авторизовались');
        list:=tstringlist.create;
        list.text:=(Coocies);
        for i:=0 to list.count-1 do
       if pos('remixsid=',list.strings[i]) > 0 then
               begin
                  remixsid := copy(list.strings[i], pos('remixsid=', list.strings[i]) + 9,
                                         (pos(';remixlang=0;',  list.strings[i]))-(pos('remixsid=',
                                         list.strings[i])+9));
                end;
       list.free;
end;
Учитесь нормально оформлять, код мс коментариями и отступами, сча проверю.
Зы есче акк в ЛС скинь.
  Ответить с цитированием
Последний раз редактировалось mironich; 11.03.2012 в 20:49.
Ответ: indy и cookies
Старый 11.03.2012, 23:29   #5
Вадимка
RAM 64MB
 
Аватар для Вадимка
 
Регистрация: 09.02.2010
Сообщений: 94
Вадимка скоро придёт к известностиВадимка скоро придёт к известности
Вадимка вне форума
По умолчанию Ответ: indy и cookies

точно не помню , вроде
Set-Cookie:+ что то там = 12 знаков

насчёт кода, извини, дурацкая привычка, мне так удобней читать код.в следующий раз оформлю))
////
а как реализовать отправку coocies вручную? эта вечная проблема с куки и инди заставляет идти на крайние меры...
пытался даже так :
Код:
form1.idcookiemanager1.AddCookie('remixsid=' +remixsid+ '; path=/;', 'vk.com');
form1.idcookiemanager1.AddCookie('remixchk=5; path=/;', 'vk.com');
не ставятся ((увы

+ из советов пользовался этим
должно убрать точку перед доменом, но к сожалению тоже не помогает
Код:
for i := 0 to form1.IdCookieManager1.CookieCollection.Count - 1 do
begin
if form1.IdCookieManager1.CookieCollection[i].Domain[1] = '.' then form1.IdCookieManager1.CookieCollection[i].Domain := copy(form1.IdCookieManager1.CookieCollection[i].Domain, 2, length(form1.IdCookieManager1.CookieCollection[i].Domain));
end;
Добавлено через 2 часа 37 минут 27 секунд
решение проблемы нашёл самостоятельно, и как оказалось проще некуда
куки решил передать вот так
HTTP.Request.CustomHeaders.Text:=Coocies;
всё получилось, работает нормально)) спасибо mironich за то что помогаешь)))
  Ответить с цитированием
Последний раз редактировалось Вадимка; 11.03.2012 в 23:29. Причина: Добавлено сообщение
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



взломать аську аську взломать взлом программы сделать взлом программы как сделать взлом программы хакерские сайты как легко взломать аську лучшие хакерские сайты топ список хакерские сайты взлом паролей легкий взлом паролей

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd. Перевод: zCarot