Просмотр полной версии : HTTP/1.0 400 Bad Request
RedFern.89
25.01.2010, 15:28
Пытаюсь отослать сообщение вконтакте. Снифером проверил все данные.
там было так
act=sent
ajax=1
chas=b0f7f128c260952e3d19962c2
to_id=xxxxxx
title=
message=прива)
from_box=1
я так понел, что парметр Chas надо выдергивать из страницы. Я это сделал. и вот такая ошибка. В чем же дело? я отсылаю тоже самое, что и браузер о_О
Может потому что параметр title пустой? Попробуй ввести что-нибудь.
RedFern.89
25.01.2010, 15:40
всеравно тоже самое
может тогда регистр параметров?
RedFern.89
25.01.2010, 15:43
так все параметры я специально из сниффера копировал. Ошибок быть не может. я уже час сверяюсь
так все параметры я специально из сниффера копировал. Ошибок быть не может. я уже час сверяюсь
так может chas за это время устарел? :)
попробуй страниццо обновить для начала :)
вручную пробовал вбивать? можт она Chas со страницы неправильно выдергивает.
RedFern.89
25.01.2010, 15:50
DiffiT он не может устареть)) ведь он возникает, при открытии окна сообщений! а сообщение ты можешь хоть час печатать)
RaX Выдергивает правильно)) сравнивал. 25 совпадений из 25
RedFern.89
25.01.2010, 15:52
он устареет, если ты заново откроешь окно сообщений, т.е. система этот хэш приведет в негодность и он якобы будет пренадлежать предыдущей сессии
да вообще хрень какая-то) впринципе Bad Request, насколько я знаю, возникает только при неверном http-пакете, может где знак пропустил или ещё чего...
RedFern.89
25.01.2010, 15:55
где я мог знак пропустить?))) а адресе?)) если бы в адересе, то я бы вылетел с 404й ошибкой)) в заголовках?)) там все скопированно со сниффера))
он устареет, если ты заново откроешь окно сообщений, т.е. система этот хэш приведет в негодность и он якобы будет пренадлежать предыдущей сессии
Дак пробовал поменять его? :)
RedFern.89
25.01.2010, 15:57
пробовал)) тоже Bad Request)
RedFern.89
25.01.2010, 15:58
ктонибудь поэксперементируйте у себя)) если что модуль могу дать)) там и авторизация и прочая херь
RedFern.89
25.01.2010, 16:37
вот функции получения хэша и отправки:
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;
RedFern.89
25.01.2010, 16:49
оказывается этот хэш нуно расшифровать)) как?
я напараолся на
http://forum.antichat.ru/thread166156.html
http://forum.antichat.ru/thread165956.html
но как?
RedFern.89
25.01.2010, 16:56
<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 сделать то?))
RedFern.89
25.01.2010, 17:45
щас все работает))) я долго разбирался, что за хэш и как его декодировать))) нашел вконтакте этот жава скрипт, вставил туда хэш и получил результат)) и взял закодированный хэш и раскодированный. начал сравнивать)) все просто))
вот функция на delphi, если кому надо)) 1.5 часа убил на все это говно
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;
Shram-spb
25.01.2010, 19:04
Вконтакте хитрая система безопастностию..
Надо уметь хорошо симулировать работу пользователя..
Попробуй указать рефферер "http://vkontakte.ru/mail.php" в хэдере запроса..
+ ты не забыл про куки?
RedFern.89
25.01.2010, 19:06
та все работает уже)) referer стоит как видишь в коде))
cheater_man
25.01.2010, 19:37
та все работает уже)) referer стоит как видишь в коде))
В чем проблема то была?
RedFern.89
25.01.2010, 19:51
в том, что хэш расшифровать надо было))) расшифровал елеле
а кто нить пробывал на С++ написать такую функцию декодирования хэша??? капец, меня вообще никак не допрет!!!)) если есть профи отзовитесь плиз!!!!
<script type="text/javascript">
window.init_dec_hash = function() {
window.decoded_hashes = {};
var dec_hash = function(hash) {
(function(_){window.decoded_hashes[_]=(function(__){var ___=ge?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return geByClass?___:'___';})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);
}
window.decodehash = function(hash) {
dec_hash(hash);
return window.decoded_hashes[hash];
}
}
</script>
я так понимаю это же та самая функция декодирования??? вообще в нее не въеду...
Jingo Bo
16.05.2010, 14:27
Проверь, декодируется ли хэш(chas), так же 400 вылезает если повторно отправить два одинаковых сообщения.
Jingo Bo
16.05.2010, 14:29
а кто нить пробывал на С++ написать такую функцию декодирования хэша??? капец, меня вообще никак не допрет!!!)) если есть профи отзовитесь плиз!!!!
Я на делфи переносил - 5 строк кода:) Поищи в этом разделе.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot