Форум: "Сети";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
ВнизКак узнать размер странички html (файла на веб-узле)? Найти похожие ветки
← →
Геннадий (2002-10-11 20:35) [0]Я использую NMHTTP. После вызова метода Get можно обрабатывать событие OnPacketRecvd и анализировать свойство BytesTotal. По идее, оно должно содержать размер загружаемой странички. Но вот фишка, не для всех страничек!
Подскажите, как можно иначе (гарантированно) узнать размер файла на заданном веб-узле. Желательно без процесса его загрузки.
Спасибо, Геннадий
← →
Ihor Osov'yak (2002-10-11 20:39) [1]Думаю, что в общем случае никак. Ведь страница может формироватся динамически и ее передача может начинатся еще до окончания формирования. Но это имхо.
← →
Геннадий (2002-10-11 20:47) [2]Действительно, но всё же логичней сначала её всё сформировать (где-нибудь во временной папке), а потом уже отсылать. Это тоже имхо.
Но ты знаешь, у меня и статические странички давали 0 байт. Мне это надо для определения трафика клиента. Ему выдаётся лимит (скажем 1 МБ) и он не должен его привысить. Пишу прокси. Впервые :).
Какие будут идеи?
← →
Ihor Osov'yak (2002-10-11 20:55) [3]Геннадий (11.10.02 20:47)
> Действительно, но всё же логичней сначала её всё сформировать
> (где-нибудь во временной папке), а потом уже отсылать. Это
> тоже имхо.
Не соглашусь.
Я аналогичный вопрос прорабатывал года два назад, причем упорно, решения в общем случае не удалось найти.
Зы - а прокси, как решение задачи учета трафика - что ж, вполне имеет право на существовании.
Но кажется мне, что есть уже уйма готовых, справляющихся с этой задачей. Ну разьве что с целью получения експириенс ...
← →
Геннадий (2002-10-11 21:04) [4]Да, можно и так сказать - гордость не позволяет использовать чужое. А если серьёзно, то просто охота своё. Именно то, что мне нужно. Да и опыт - вещь полезная. Вот после загрузки странички - по факту - определить, думаю, очень просто. А вот как определить, скажем, размер скачиваемого файла с FTP ? До начала загрузки. А то потом поздно будет... (после скачки дтсрибутива Windows...) Что касается прокси - нет ли примера КАК ОН ВООБЩЕ УСТРОЕН ?
Геннадий ICQ 145339349
← →
Алексей Ким (2002-10-11 21:22) [5]Геннадий фтп есть команда LIST
← →
Геннадий (2002-10-11 21:38) [6]А можно LIST применить и к HTTP ? Хотя бы к статическим страничкам? И что делать с динамическими?
← →
Алексей Ким (2002-10-11 22:07) [7]http-есть хеадер Content-Length но трабла в нем что сервер не всегда его заполняет
← →
guest_xxx (2002-10-14 10:55) [8]Именно так. Только, конечно, нужно не Get команду использовать, а head. Они за этим и предназначена.
← →
Opuhshii (2002-10-14 15:11) [9]есть 100% вариант... ;)
мда, uses WinInet,...
BOOL HttpQueryInfo(
HINTERNET hRequest,
DWORD dwInfoLevel,
LPVOID lpvBuffer,
LPDWORD lpdwBufferLength,
LPDWORD lpdwIndex
);
...
lpdwBufferLength
[in] Pointer to a value that contains the length of the data buffer, in bytes. When the function returns, this parameter contains the address of a value specifying the length of the information written to the buffer. When the function returns strings, the following rules apply.
If the function succeeds, lpdwBufferLength specifies the length of the string, in BYTEs, minus 1 for the terminating NULL.
If the function fails and ERROR_INSUFFICIENT_BUFFER is returned, lpdwBufferLength specifies the number of bytes that the application must allocate to receive the string.
...
только конечно тогда никаких TNMHTTP только InternetOpen, InternetConnect, HttpOpenRequest, HttpSendRequest, HttpQueryInfo, InternetReadFile,. и файл у Вас!,.. после этого,.. много InternetCloseHandle,.. :),...
← →
kofman (2002-10-14 23:51) [10]А как с этим HttpQueryInfo работать? Можно простинький примерчик?
← →
Opuhshii (2002-10-15 10:55) [11]http://delphi.mastak.ru/cgi-bin/download.pl?get=1034664876&n=2
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c