Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Net] http: как узнать размер данных, если поле Content-Length отсутствует? 09.12.02 14:34 Число просмотров: 617
Автор: vim Статус: Незарегистрированный пользователь
|
Написал небольшую прогу - хочу просмотреть http трафик между IE и proxy-сервером. Т.е. вместо IE <=> PROXY сделать IE <=> ME <=> PROXY.
Проблема в чтении данных с прокси-сервера.
Когда в заголовке есть поле Content-Length, я считываю N-е количество байт, идущих после заголовка и возвращаю их в IE. С этим проблем нет.
Когда поля Content-Length нет, то размер данных, следующих за заголовком, не известен. По идее должен быть цикл вроде
while (true)
{
nBytesRead = read_from_proxy( buf );
write_to_IE( buf, 0, nByteRead );
if (nBytesRead < buf.length) break;
}
---
Вот пример заголовка:
HTTP/1.0 200 OK
Date: Mon, 09 Dec 2002 08:33:28 GMT
Content-Type: text/html; charset=windows-1251
Server: Apache
X-Powered-By: PHP/4.1.2
Content-Language: ru
Via: 1.1 netcache1 (NetCache NetApp/5.3R2D5), 1.1 mcilproxy (NetCache NetApp/5.2.1R2)
Далее идут html-данные, которые в каком-то месте обрываются.
Обрываются они потому, что на каком-то очередном шаге я получаю количество считанных в буфер байт меньше чем размер самого буфера, и решаю, что данные закончились, отдаю этот буфер IE и жду от него очередной команды.
А IE ничего не посылает, потому что ждет окончания блока данных.
Прога написана на Jave, но думаю это не принципиально
Как узнать размер блока данных, следующих за заголовком???
|
- [Net] http: как узнать размер данных, если поле Co... - vim 09.12.02 14:34 [617]
|
|
|