Как отправить кукисы http://vkontakte.ru/

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Farcar, 16 Nov 2011.

  1. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Как отправить кукисы

    http://vkontakte.ru/al_search.php????
     
  2. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    HTTP.AllowCookies:=false;
    HTTP.Request.CustomHeaders.Clear;
    HTTP.Request.CustomHeaders.Add('Cookie: remixsid=' + куки);
     
  3. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Я вот так шлю запрос, куда мне нужно это вставить???


    PHP:
    Var
    Params:TStringList;
      
    Responseres:WideString ;
    begin
      Params
    := TStringList.Create;
      
    Params.Add('c[country]=1');
      
    Params.Add('c[name]=1');
      
    Params.Add('c[section]=people');
     
    // Params.Add('has_more:true');
      
    Params.Add('offset:0');
    Responseres:=IdHTTP1.Post('http://vkontakte.ru/al_search.php',Params);
      
    Memo1.Text:=Responseres;
      
    Params.free;
    end;

    И где мне взять куки чтобы их отправить???
     
  4. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Вот нашел код на ачате, немного добавил, вот:

    PHP:
    function SetCookies(Rawstring): string;
    var 
    PosCookInteger;
    Cookstring;
    begin
    Cook
    := '';
    Cook:= 'Cookie: ';
    PosCook:= Pos('Set-Cookie:'Raw);
    while 
    PosCook<>do
    begin
    Delete
    (Raw1PosCook-1);
    Cook:= Cook Copy(Raw12Pos(';'Raw)-11);
    Delete(Raw1Pos(';'Raw));
    PosCook:= Pos('Set-Cookie:'Raw);
    end;
    Result:= Cook+'remixlang=0;';
    end;

    procedure TForm1.Button1Click(SenderTObject);
    var 
    httpTIdHTTP;
    DataTStringList;
    Cookiesstring;
    begin
    HTTP
    := TIdHTTP.Create(Self);
    HTTP.HandleRedirects:= True;
    HTTP.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1';
    try
    HTTP.Get('http://login.vk.com/?act=login&q=1&al_frame=1&from_host=vkontakte.ru&email='+Edit1.Text+'&pass='+Edit2.Text);
    except
    end
    ;
    Cookies:= SetCookies(HTTP.Response.RawHeaders.Text);
    if 
    Pos('remix'Cookies)<>0 then ShowMessage('Авторизовались');
    HTTP.Free;
    end;

    Этот код подойдет чтобы авторизоватся и отправить куки, или как тут нужно сделать???
     
  5. fuckyoupig

    fuckyoupig Member

    Joined:
    1 Mar 2011
    Messages:
    0
    Likes Received:
    11
    Reputations:
    2
    Что-то много в последнее время стало тем аля: "Как отправить...", "Спиз@ил код, исправьте ошибки" и т.д. Начните вы хотя бы с изучения строк. Зачем вы начинаете кодить пропустив 90% базовых знаний? Пора бы уже понять, что на этом форуме не будут делать за вас всю работу. Ну возьми ты книгу или google открой. Первая страница гугла даст полный и развёрнутый ответ на ваш вопрос.
     
    2 people like this.
  6. Zyon

    Zyon New Member

    Joined:
    24 Feb 2010
    Messages:
    15
    Likes Received:
    4
    Reputations:
    0
    Конечно идиотизм так делать, но я помню где-то на форуме тоже примерно аналогично когда-то постил.

    Вот твой код:

    Code:
    Var 
    Params:TStringList; 
      Responseres:WideString ; 
    begin 
      Params:= TStringList.Create; 
      Params.Add('c[country]=1'); 
      Params.Add('c[name]=1'); 
      Params.Add('c[section]=people'); 
     // Params.Add('has_more:true'); 
      Params.Add('offset:0'); 
    Responseres:=IdHTTP1.Post('http://vkontakte.ru/al_search.php',Params); 
      Memo1.Text:=Responseres; 
      Params.free; 
    end;  
    и вот IOFFE тебе написал:

    Code:
    HTTP.AllowCookies:=false;
    HTTP.Request.CustomHeaders.Clear;
    HTTP.Request.CustomHeaders.Add('Cookie: remixsid=' + куки);
    нетрудно догадаться, что куки установить надо где-то перед отправкой запроса, я конечно предполагаю, что ты думаешь, что для этого есть какое-то эксклюзивное место. Ну короче вот так:

    Code:
    Var 
    Params:TStringList; 
      Responseres:WideString ; 
    begin 
      Params:= TStringList.Create; 
      Params.Add('c[country]=1'); 
      Params.Add('c[name]=1'); 
      Params.Add('c[section]=people'); 
     // Params.Add('has_more:true'); 
      Params.Add('offset:0'); 
    
    IdHTTP1.AllowCookies:=false;
    IdHTTP1.Request.CustomHeaders.Clear;
    IdHTTP1.Request.CustomHeaders.Add('Cookie: remixsid=' + куки);
    
    Responseres:=IdHTTP1.Post('http://vkontakte.ru/al_search.php',Params); 
      Memo1.Text:=Responseres; 
      Params.free; 
    end;  
     
    1 person likes this.
  7. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    я так и сделал =)

    а откуда взять куки
     
    #7 Farcar, 17 Nov 2011
    Last edited: 17 Nov 2011
  8. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    и еще вопрос, я знаю что значение офсет нужно брать из ответа, это знасит что нужно найти его в ответе и привоить моему, но ничего у меня не выходит, подскажите в чем дело
     
  9. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    Я не особо знаю инди, но вроде, если добавить компонент cookiemanager, и указать его в свойства idhttp1, куки должны автоматически отправляться?
     
  10. Zyon

    Zyon New Member

    Joined:
    24 Feb 2010
    Messages:
    15
    Likes Received:
    4
    Reputations:
    0
    Flisk, Я с индейкой вообще не работаю, про кукименаджер когда-то читал, тестил, то ли у меня руки из жопы, то ли он баженый, короче мне было проще забыть про инди и юзать синапс.

    Я не вникал, но как я понял тебя надо его спарсить просто, гугли в сторону методов работы со строками pos, copy,delete,posex...

    Жесть, конечно. Авторизацию надо пройти вконтакте. У тебя кроме представленного в первом посте кода вообще ничего нет?
     
  11. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    вот есть код авторизации


    PHP:
    function SetCookies(Rawstring): string;
    var 
    PosCookInteger;
    Cookstring;
    begin
    Cook
    := '';
    Cook:= 'Cookie: ';
    PosCook:= Pos('Set-Cookie:'Raw);
    while 
    PosCook<>do
    begin
    Delete
    (Raw1PosCook-1);
    Cook:= Cook Copy(Raw12Pos(';'Raw)-11);
    Delete(Raw1Pos(';'Raw));
    PosCook:= Pos('Set-Cookie:'Raw);
    end;
    Result:= Cook+'remixlang=0;';
    end;

    procedure TForm1.Button1Click(SenderTObject);
    var 
    httpTIdHTTP;
    DataTStringList;
    Cookiesstring;
    begin
    HTTP
    := TIdHTTP.Create(Self);
    HTTP.HandleRedirects:= True;
    HTTP.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1';
    try
    HTTP.Get('http://login.vk.com/?act=login&q=1&al_frame=1&from_host=vkontakte.ru&email='+Edit1.Text+'&pass='+Edit2.Text);
    except
    end
    ;
    Cookies:= SetCookies(HTTP.Response.RawHeaders.Text);
    if 
    Pos('remix'Cookies)<>0 then ShowMessage('Авторизовались');
    HTTP.Free;
    end;
     
  12. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Это уже даже не смешно - печально.
    Ты не знаешь НИ ХЕРА, даже говорю не про тему с авторизацией- ты вообще не понимаешь код.
    Внимаение вопрос: Нахрена тебе это, если ты даже не пытаешься соизволить вникнуть в код:
    Я так понимаю, что ты код даже компилить не пытаешься?Что ты вообще ищешь?Для чего тебе нужен код?Куда ты его хочешь потом вставить?
    ЗЫ - пользуйся поисковиком и найди уже готовое решение, есть масса разных мелких "клиентов " для авторизации вконтакте.

    Тему в топку.Из за таких тем, где человек не пытается чему то научиться, а просто что то тупо скопипастить, даже не осизволив вникнуть в то, что он тырит - такие вещи засирают ачат.
     
  13. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    Многие жалуются на инди, что там багов куча. Хз, может и так. Я слышал много хорошего про компоненты Ip*works - они скамерческие, но якобы отлаженные супер и все такое. Синапс не тестил особо.

    з.ы. ТС, если надо, могу попробовать накодить пример на инди+кукиманаджер, там не надо парсить строки. Правда, я дельфи не знаю, код будет на C++ Builder.

    з.з.ы. а вообще, это не дело. Изучи матчасть, и много вопросов отпадет. Я когда-то тоже заебывал людей вопросами по работе http, тупые вопросы задавал что ужас. Потом подучил немного - и начал понимать, что к чему. Надо не бездумно копипастить, а вникать в код, понять, что делает каждая строка. Иначе даже быдлокодить не научишся..

    Или, если тебе кодинг нафиг не нужен, закажи где-то на флансе код, где тебе его распишут и закомментят еще подробно.
     
  14. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Подскажите что не правильно, написал код, и выдает ошибку

    PHP:
    var
      
    Http  TidHttp;
      
    CM    TidCookieManager;
      
    LoginInfo  TStringList;
       
    UserID,  UserName  :  String;
       
    StrPage:widestring;
      
    integer;
    begin
      
    try
        
    Http := TIdHTTP.Create(Self);
        
    LoginInfo := TStringList.Create;
        
    CM := TidCookieManager.Create(Http);
        
    Http.AllowCookies := true;
        
    Http.CookieManager := CM;
        
    Http.HandleRedirects := true;

        
    Http.Request.Host:='login.vk.com';
        
    Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
        
    Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
        
    Http.Request.AcceptEncoding:='gzip,deflate';
        
    Http.Request.Connection:='keep-alive';
        
    Http.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
        
    Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
        
    Http.Request.Referer:='http://vkontakte.ru/al_index.php?act=auth_frame&nqr=';

    LoginInfo.Add('act=login');
    LoginInfo.Add('q=1');
    LoginInfo.Add('al_frame=1');
    LoginInfo.Add('expire=1');
    LoginInfo.Add('captcha_sid=');
    LoginInfo.Add('captcha_key=');
    LoginInfo.Add('from_host=vkontakte.ru');
    LoginInfo.Add('email='+edit1.text);
    LoginInfo.Add('pass='+edit2.Text);
    StrPage := Http.Post('http://login.vk.com/?act=login'LoginInfo);
      finally
        
    LoginInfo.Free;
        
    CM.Free;
        
    Http.Free;
      
    end;

      if (
    Pos('Моя Сторінка',StrPage) <> 0) or (Pos('Моя Страница',StrPage) <> 0then
        ShowMessage
    ('Авторизация прошла успешно')
      else
        
    ShowMessage('Авторизация провалилась');

      
    Memo1.Lines.Text := StrPage;
    end;

    Выделяет строку
    PHP:
    StrPage := Http.Post('http://login.vk.com/?act=login'LoginInfo);

    Выдает такую ошибку:

    [​IMG]
     
    #14 Farcar, 21 Nov 2011
    Last edited: 21 Nov 2011
  15. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    А там еще и текст ошибки пишется, прочитайте его пожалуйста, может сами додумаетесь, может с нами поделитесь
     
  16. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    https://forum.antichat.ru/threadnav303109-1-10.html
    https://forum.antichat.ru/threadnav299663-5-10.html
     
    #16 shadowrun, 21 Nov 2011
    Last edited: 21 Nov 2011
  17. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    я смотрел эту тему, но хотел бы через куки менеджер
     
  18. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    http://kdcodes.blogspot.com/p/idhttpex.html
     
  19. Farcar

    Farcar Banned

    Joined:
    6 Nov 2011
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Я не хочу применять дополнительные компоненты, хотел бы научится этим пользоватся
     
  20. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Отснифайте запросы. IOHandler is not valid возникает часто из-за редиректа на HTTPS