| |
|
|
| | что тут неправильно, скажите?
POST /c_chat/login.php HTTP/1.1
Host: phx.freedomf.net
nick={nick}&password={pswd}
|
фигурные скобки заменяются значениями | |
| |
|
|
| |
|
|
| |
для: bronenos
(07.07.2007 в 00:22)
| | |
POST /c_chat/login.php HTTP/1.1
Host: phx.freedomf.net
Content-type: application/x-www-form-urlencoded
Content-length: " . strlen("nick={nick}&password={pswd}") . "
nick={nick}&password={pswd}
|
Обратите внимание на перевод строки после "nick={nick}&password={pswd}". | |
| |
|
|
| |
|
|
| |
для: Unkind
(07.07.2007 в 00:25)
| | | перевод обязателен?
то есть я так понимаю?
CSocket->Socket->SendText((AnsiString)
"POST /c_chat/login.php HTTP/1.1\r\n" +
"Host: phx.freedomf.net\r\n" +
"Content-Type: application/x-www-form-urlencoded\r\n" +
"Content-Length: " + data.Length() + "\r\n" +
"\r\n" + data + "\r\n"
);
|
(BCB) | |
| |
|
|
| |
|
|
| |
для: bronenos
(07.07.2007 в 00:38)
| | | Да, обязателен.
Всё верно.
Только я бы посоветовал использовать HTTP/1.0. | |
| |
|
|
| |
|
|
| |
для: Unkind
(07.07.2007 в 00:50)
| | | почему | |
| |
|
|
| |
|
|
| |
для: bronenos
(07.07.2007 в 01:09)
| | | Потому как HTTP/1.1 предусматривает кодирование информации (transfer encoding). Вам могут выдать ответ в виде transfer-coding chunked, gzip, deflate и проч.
Помимо прочего функция feof() не всегда сможет корректно определить "конец файла". Поэтому при принятии данных придется обойтись без неё. | |
| |
|
|
| |
|
|
| |
для: Unkind
(07.07.2007 в 01:16)
| | | >Помимо прочего функция feof() не всегда сможет корректно определить "конец файла".
Более точно - конец запроса/отклика в HTTP/1.1 может не совпадать с концом потока данных. | |
| |
|
|
| |
|
|
| |
для: Unkind
(07.07.2007 в 01:16)
| | | я их читаю не fgets а уже готовым
Socket->ReceiveText();
так что не страшно
мне было главное понять почему сервер не отдает что нужно
+ проблема еще одна
в ответе, наподобие alert я его вывожу и если я пишу на странице "привет", то ответ примерно такой получается
8
привет
0
откуда цифры? | |
| |
|
|
| |
|
|
| |
для: bronenos
(07.07.2007 в 09:03)
| | | Вы полагаете, что сервер отдает Вам строки ответа.
Это не так (он не строки отдает), поскольку в заголовке отклика встретилось поле Transfer-Encoding: chunked
Ваша ошибка в том, что Вы его проигнорировали, а нужно было прочитать RFC-2616 или его перевод (или поднять поиск по форуму по этим словам) и понять, что формат отклика ну совершенно другой.
Представьте, если бы Вы попросили у кого-нибудь текст, а Вам этот кто-то отдал бы многотомный архив с этим текстом.
Вы бы тоже стали удивляться, что это за странные буковки !Rar и какая-то фигня идет перед текстом или как?
Ссылки на документы посмотрите тут http://softtime.ru/forum/read.php?id_forum=1&id_theme=37589 (17.05.2007 в 14:37)
А тут - мой пример реализации сбора чанков - http://softtime.ru/forum/read.php?id_forum=1&id_theme=35885 (13.04.2007 в 00:24) | |
| |
|
|
| |
|
|
| |
для: Trianon
(07.07.2007 в 13:01)
| | | перешел на 1.0 и перенос кстати убрал последний и работает все как надо, почти
если кто нибудь работал в борланд с++ с объектом ClientSocket, отзовитес пожалуйста
а то неполадки у меня
пишу здесь потому что в том форуме никто не появляется кажется | |
| |
|
|