Просмотр полной версии : HTTP
Кто знает в чём может быть проблема?
Делаю запрос GET http://loveplanet.ru/index.php?a=regcheck&f=mail&v=' + Email + ' HTTP/1.0'#13#10#13#10. Он возвращает ошибку 400, типо запрос составлен не верно. Юзаю Винсоки. Отправляю этот запрос через shitt_http, ответ приходит нормальный. shitt_http - юзает Инди, сделалбы с ними, но терпеть их не могу.
Поюзай снифер, почитай rfc. Где Host в заросе?
Kaimi, такой запрос запросто жрётся так как версия HTTP 1.0. Запрос отправлял по всякому и с хостом и т.п. Никак. Кароче пох, инди так инди(((( бе
Поюзай снифер, почитай rfc. Где Host в заросе?
Для http 1.0 заголовок host не нужен.
Возможно, проблема в том, что строковая переменная Email не в UrlEncode.
почему "#13#10#13#10" находятся после последнего закрывающего апострофа? где первый открывающий апостроф? короче по тому куску кода ничего не понятно.
Данные уходят так
Client.Connect('loveplanet.ru', 80);
Header := 'GET http://loveplanet.ru/?a=regcheck&f=mail&v=' + Email + ' HTTP/1.0'#13#10#13#10;
Client.SendBuffer(Header, Length(Header));
Client.Idle(10);
Client.ReceiveBuffer(Rec, SizeOf(Rec));
Client - свой класс на винсоке
Header := 'GET http://loveplanet.ru/?a=regcheck&f=mail&v=' + Email + ' HTTP/1.0'#13#10#13#10;
В дельфи не разбираюсь, но оно точно должно так выглядеть?
А не так:
Header := 'GET http://loveplanet.ru/?a=regcheck&f=mail&v=' + Email + ' HTTP/1.0'+'#13#10#13#10';
2 dmnt если не разбираешься, то лучше не пишу чушь!
Если ты шлеш запрос через HTTP прокси то всё норм. А если напрямую, то лучше сделай по нормальному. Потому что не все серваки корректно обрабатывают такие запрос.
делай типа
'GET /scrypt.ext?param='+mail+' HTTP/1.0'#13#10'Host: site.com'#13#10#13#10
slesh не помогло, я говорю всё уже перепробывал, не пойму в чём дело
Может быть проблема в твоем классе? Скинь часть кода, которая отвечает за отправку данных.
RedFern.89
28.03.2010, 14:42
#13 тут вовсе ни к чему. Перевод строки используй #10. т.е. каждую новую строку разделяй #10 и в конце запроса оставляй #10#10
Нет, в нём нет проблем. Не первая прога на нём, но первая кот не пашет
RedFern.89
28.03.2010, 14:56
вот тебе рабочий пример
const
RequestLine = 'GET /index.php HTTP/1.1' + #10 +
'Host: vk.com' + #10 +
'User-Agent: Mozilla/5.0 (delphi 7)' + #10 +
'Connection: close' + #10#10;
w : TClientSocket;
begin
w := TClientSocket.Create(nil);
w.Socket.SendText(RequestLine);
end;
у меня все работало)))
#13 тут вовсе ни к чему. Перевод строки используй #10. т.е. каждую новую строку разделяй #10 и в конце запроса оставляй #10#10
Неправильно, это тебе скажут все, кто более менее работал с протоколом HTTP. Нужно использовать именно #13#10.
2 Fliplab короче. не угукай мозги народу, а отснифайл то что посылается и выкладывай тут
Всё норм. Решил проблему) Delphi сума сошёл просто...
RedFern.89
30.03.2010, 11:00
Неправильно, это тебе скажут все, кто более менее работал с протоколом HTTP. Нужно использовать именно #13#10.
когда я юзал #13#10, то я вылетал с ошибкой 400 Bad Request. Может я что то не так делал. Но когда я использовал для перевода строки #10, то все работало норм)
когда я юзал #13#10, то я вылетал с ошибкой 400 Bad Request. Может я что то не так делал. Но когда я использовал для перевода строки #10, то все работало норм)
Ну не знаю, все может быть. Только лучше такие слова подтверждать фактами.
AlexTheC0d3r
30.03.2010, 14:27
когда я юзал #13#10, то я вылетал с ошибкой 400 Bad Request. Может я что то не так делал. Но когда я использовал для перевода строки #10, то все работало норм)
надо не #13#10 а #13+#10
надо не #13#10 а #13+#10
На будущее запомни. Следующие два варианты кода записывают один и тот же текст в поле Memo:
Memo.Text := 'test' + #13 + #10 + '123';
Memo.Text := 'test'#13#10'123';
AlexTheC0d3r
30.03.2010, 15:21
На будущее запомни. Следующие два варианты кода записывают один и тот же текст в поле Memo:
Memo.Text := 'test' + #13 + #10 + '123';
Memo.Text := 'test'#13#10'123';
понял, ошибся...
просто в первый раз написал #10#13
RedFern.89
04.04.2010, 02:05
Ошибка номер 400 - это и есть факт:)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot