[Delphi] Indy10.5.5 Авторизация ВК

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by cel, 17 Feb 2010.

  1. cel

    cel New Member

    Joined:
    11 Nov 2008
    Messages:
    63
    Likes Received:
    0
    Reputations:
    0
    Памогите пожалуйсто,я пытаюсь авторизоватся в контакте,но у мнея не палучается,выскакивает ошибка EIdHTTPProtocolException 'HTTP/1.1 302 Found’,
    HandleRedirects True,я не понемаю по чему может быть проблема.

    Code:
    var
      http : Tidhttp;
      s,name,id,Page : string;
      post : Tstringlist;
      coo : Tidcookiemanager;
      compressor : tidCompressorZLib;
    begin
      coo := Tidcookiemanager.Create;
      http := Tidhttp.Create;
      http.ReadTimeout := 60000;
      http.AllowCookies := true;
      http.CookieManager := coo;
      http.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)';
      http.Request.AcceptEncoding := 'gzip,deflate';
      compressor := tIdCompressorZLib.Create;
      http.Compressor := compressor;
      post := Tstringlist.Create;
      
      http.get ('http://vk.com');
      post.add ('op=a_login_attempt');
      http.post ('http://vk.com/login.php', post);
      post.Clear;
    
      post.add ('email=' + sedit1.Text);
      post.add ('pass=' + sedit2.Text);
      post.add ('expire=');
      post.add ('vk=1');
      post.add ('act=login');
      s := http.post ('http://login.vk.com/', post);
      post.Clear;
    
      post.Add ('op=slogin');
      post.Add ('redirect=1');
      post.Add ('expire=0');
      post.Add ('to=');
      post.Add ('s=' + copy (s, 536, 56));
      Page:=http.post ('http://vk.com/login.php', post);
      post.Free;
      Coo.Free;
      http.Free;
     
  2. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    302 - это перенаправление. Установи следующее свойство для автоматической переадрисовки. и тогда эксепшен не будет вываливаться
    Code:
    HTTP.HandleRedirects := True;
    так же можешь в парметрах сменить с redirect=1 на redirect=0. Так, как при установленном значении 1, ты при успешной авторизации попадаешь на страницу /profile.php
     
    #2 RedFern.89, 17 Feb 2010
    Last edited: 17 Feb 2010
  3. cel

    cel New Member

    Joined:
    11 Nov 2008
    Messages:
    63
    Likes Received:
    0
    Reputations:
    0
    спс, но щас начела выскакивать ЕIdConnClosedGracefully
     
  4. rankor777

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

    Joined:
    11 Jan 2008
    Messages:
    15
    Likes Received:
    23
    Reputations:
    0
    В Indy есть баг, из-за которого куки не сохраняются, если у домена точка вначале (например, .vkontakte.ru). Так что не мучайся с этим поделием, и юзай, например, Overbyte ICS
     
  5. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    или стучи мне в асю 440-905-748, разберемся) у меня тож был такой баг и я исправил TidCookieManager
     
  6. Fliplab

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

    Joined:
    29 Jul 2008
    Messages:
    123
    Likes Received:
    20
    Reputations:
    3
    А вообще заходи на сайт vkopt'a И качай модуль Auth. он как раз для авторизации в контакте.либо авторизируйся на вап версии.там по проще