HTTP/1.0 400 Bad Request

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by RedFern.89, 25 Jan 2010.

  1. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    Пытаюсь отослать сообщение вконтакте. Снифером проверил все данные.

    там было так

    Code:
    act=sent                       
    ajax=1
    chas=b0f7f128c260952e3d19962c2  
    to_id=xxxxxx
    title=
    message=прива)                     
    from_box=1
    
    я так понел, что парметр Chas надо выдергивать из страницы. Я это сделал. и вот такая ошибка. В чем же дело? я отсылаю тоже самое, что и браузер о_О
     
    #1 RedFern.89, 25 Jan 2010
    Last edited: 25 Jan 2010
  2. RaX

    RaX Member

    Joined:
    7 Jun 2008
    Messages:
    34
    Likes Received:
    34
    Reputations:
    0
    Может потому что параметр title пустой? Попробуй ввести что-нибудь.
     
  3. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    всеравно тоже самое
     
  4. RaX

    RaX Member

    Joined:
    7 Jun 2008
    Messages:
    34
    Likes Received:
    34
    Reputations:
    0
    может тогда регистр параметров?
     
  5. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    так все параметры я специально из сниффера копировал. Ошибок быть не может. я уже час сверяюсь
     
  6. DiffiT

    DiffiT Member

    Joined:
    15 Dec 2009
    Messages:
    195
    Likes Received:
    12
    Reputations:
    3
    так может chas за это время устарел? :)
    попробуй страниццо обновить для начала :)
     
  7. RaX

    RaX Member

    Joined:
    7 Jun 2008
    Messages:
    34
    Likes Received:
    34
    Reputations:
    0
    вручную пробовал вбивать? можт она Chas со страницы неправильно выдергивает.
     
  8. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    DiffiT он не может устареть)) ведь он возникает, при открытии окна сообщений! а сообщение ты можешь хоть час печатать)

    RaX Выдергивает правильно)) сравнивал. 25 совпадений из 25
     
  9. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    он устареет, если ты заново откроешь окно сообщений, т.е. система этот хэш приведет в негодность и он якобы будет пренадлежать предыдущей сессии
     
  10. RaX

    RaX Member

    Joined:
    7 Jun 2008
    Messages:
    34
    Likes Received:
    34
    Reputations:
    0
    да вообще хрень какая-то) впринципе Bad Request, насколько я знаю, возникает только при неверном http-пакете, может где знак пропустил или ещё чего...
     
  11. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    где я мог знак пропустить?))) а адресе?)) если бы в адересе, то я бы вылетел с 404й ошибкой)) в заголовках?)) там все скопированно со сниффера))
     
  12. DiffiT

    DiffiT Member

    Joined:
    15 Dec 2009
    Messages:
    195
    Likes Received:
    12
    Reputations:
    3
    Дак пробовал поменять его? :)
     
  13. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    пробовал)) тоже Bad Request)
     
  14. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    ктонибудь поэксперементируйте у себя)) если что модуль могу дать)) там и авторизация и прочая херь
     
  15. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    вот функции получения хэша и отправки:

    Code:
    function VK_OpenWriteBox(id: string): string;
    var
     Str : string;
    begin
     Str := HTTP.Get('http://vkontakte.ru/mail.php?act=a_write_box&to=' + id);
     str := Copy(str, Pos('decodehash', str) +12, Length(str));
     Delete(str, Pos(#39, str), Length(str));
     Result := str;
    end;
    
    procedure VK_SendMessage(id, hash, msg: string);
    var
     Post : TStringList;
    begin
     Post := TStringList.Create;
     Post.Add('act=sent');
     Post.Add('ajax=1');
     Post.Add('chas=' + hash);
     Post.Add('to_id=' + id);
     Post.Add('title=))');
     Post.Add('message=' + AnsiToUTF8(msg));
     Post.Add('from_box=1');
    
     HTTP.Request.Referer := 'http://vkontakte.ru/mail.php?act=a_write_box&to=' + id;
     HTTP.Post('http://vkontakte.ru/mail.php', Post);
     Post.Free;
    end;
    
     
  16. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    оказывается этот хэш нуно расшифровать)) как?

    я напараолся на

    http://forum.antichat.ru/thread166156.html
    http://forum.antichat.ru/thread165956.html

    но как?
     
  17. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    Code:
    <script type="text/javascript">
    <!--
    
    
    
    window.dec_hash = function(hash) {
      (function(_){window.decoded_hashes[_]=(function(__){var ___='';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return ___;})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);
    }
    
    
    window.decoded_hashes = {};
    window.decodehash = function(hash) {
      window.dec_hash(hash);
      return window.decoded_hashes[hash];
    }
    window.decode_hash = window.decodehash;
    
    
    
    bukas=decode_hash('46407aef5072f2d8ed9354d92');
    
    alert(bukas);
    document.write(bukas);
    //-->
    
    </script>
    
    как это в delphi сделать то?))
     
  18. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    щас все работает))) я долго разбирался, что за хэш и как его декодировать))) нашел вконтакте этот жава скрипт, вставил туда хэш и получил результат)) и взял закодированный хэш и раскодированный. начал сравнивать)) все просто))

    вот функция на delphi, если кому надо)) 1.5 часа убил на все это говно

    Code:
    function DecChas(chas: string): string;
    var
     Decchas : string;
     str : string;
     I : Integer;
     Len : integer;
    begin
    
     str := Copy(chas, 6, 12);
     Len := Length(str);
    
     For I := 0 To Length(str) -1 do
     begin
      Decchas := Decchas + str[len];
      Inc(len, -1);
     end;
    
     str := Copy(chas, 21, Length(chas) -5);
     str := str + Copy(chas, 5, 1);
    
     Len := Length(str);
    
     For I := 0 To Length(str) -1 do
     begin
       Decchas := Decchas + str[len];
       Inc(len, -1);
     end;
    
     Result := Decchas;
    end;
    
     
  19. Shram-spb

    Shram-spb Member

    Joined:
    6 Jun 2007
    Messages:
    64
    Likes Received:
    42
    Reputations:
    35
    Вконтакте хитрая система безопастностию..
    Надо уметь хорошо симулировать работу пользователя..
    Попробуй указать рефферер "http://vkontakte.ru/mail.php" в хэдере запроса..
    + ты не забыл про куки?
     
  20. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    та все работает уже)) referer стоит как видишь в коде))