Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
POST-ответ содержит левые даннные |

15.06.2009, 10:46
|
|
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
Провел на форуме: 388345
Репутация:
58
|
|
POST-ответ содержит левые даннные
При посылке серверу POST-запроса, от него приходит ответ, в котором помимо самих данных есть служебная информация.
Вот пример ответа:
Код:
HTTP/1.1 200 OK
Date: Mon, 15 Jun 2009 06:37:15 GMT
Server: Apache/1.3.41 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
4f
<HTML>
<BODY>
<DIV id='d1'>
array(0) {
}
</DIV>
</BODY>
</HTML>
0
Интересуют значение 4f и 0
Ну понятно что 4f - это длина блока, а 0, видимо, его окончание. Но как их отфильтровать? Как это дело грамотно обработать без танцев с бубном?
Во всех применрах что я нашел, получение ответа сводится к
PHP код:
$Response = '';
while (!feof($sock)) {
$Response .= fgets($sock);
}
|
|
|

15.06.2009, 11:31
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
921
|
|
указывай размер принимаемого ответа и режь всё ненужное
PHP код:
while ( ! feof ( $fp ) ) {
$line = fgets ( $fp, 128 );
}
|
|
|

15.06.2009, 11:34
|
|
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме: 1607210
Репутация:
1617
|
|
Сообщение от Sharky
указывай размер принимаемого ответа и режь всё ненужное
PHP код:
while ( ! feof ( $fp ) ) {
$line = fgets ( $fp, 128 );
}
ну это не верно.
А правильно будет так.
Вариант 1.
Посылать запрос не HTTP 1.1 а HTTP 1.0
тогда в ответе не будет данных значений.
Вариант 2.
Обрабатывать данные после получения пакета, по стандартам RFC, то есть искать первый \r\n\r\n. считывать длину пакета по маске [a-z0-9] в твоем случае это 4F, брать это кол-во байт, и отсчитывать их, от следующего за числом переводом строки, там повторять это же действие, пока число не станет равным 0.
__________________
Бойтесь своих желаний. Они могут исполниться....
...О-о-о-о, ушами не услышать, глазами не понять!
|
|
|

15.06.2009, 11:54
|
|
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
Провел на форуме: 388345
Репутация:
58
|
|
SQLHACK, спасибо. Наверное на первом варианте остановлюсь.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|