HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

POST-ответ содержит левые даннные
  #1  
Старый 15.06.2009, 10:46
ZagZag
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
С нами: 10113007

Репутация: 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);

 
Ответить с цитированием

  #2  
Старый 15.06.2009, 11:31
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
С нами: 10541186

Репутация: 921


По умолчанию

указывай размер принимаемого ответа и режь всё ненужное
PHP код:
while ( ! feof $fp ) ) {
        
$line fgets $fp128 );

 
Ответить с цитированием

  #3  
Старый 15.06.2009, 11:34
SQLHACK
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
С нами: 10326626

Репутация: 1617


По умолчанию

Цитата:
Сообщение от Sharky  
указывай размер принимаемого ответа и режь всё ненужное
PHP код:
while ( ! feof $fp ) ) {
        
$line fgets $fp128 );

ну это не верно.

А правильно будет так.
Вариант 1.
Посылать запрос не HTTP 1.1 а HTTP 1.0
тогда в ответе не будет данных значений.

Вариант 2.
Обрабатывать данные после получения пакета, по стандартам RFC, то есть искать первый \r\n\r\n. считывать длину пакета по маске [a-z0-9] в твоем случае это 4F, брать это кол-во байт, и отсчитывать их, от следующего за числом переводом строки, там повторять это же действие, пока число не станет равным 0.
__________________
Бойтесь своих желаний. Они могут исполниться....

...О-о-о-о, ушами не услышать, глазами не понять!
 
Ответить с цитированием

  #4  
Старый 15.06.2009, 11:54
ZagZag
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
С нами: 10113007

Репутация: 58
По умолчанию

SQLHACK, спасибо. Наверное на первом варианте остановлюсь.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FireFox Post Extension [53x]Shadow Избранное 21 28.04.2011 18:10
ВКонтакте "счастливый фермер" ЖенькО Социальные сети 309 22.07.2009 11:35
Ошибки Windows 2 SVipeR Windows 9 02.03.2009 19:28
Ошибки Windows dinar_007 Windows 19 01.07.2007 13:32



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.