Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.47 MB
Время: 0.009 c
1-28032
Andrew2
2002-11-30 03:17
2002.12.09
DLL callback


1-28047
MAN-IN-RED
2002-11-30 15:15
2002.12.09
---|Ветка была без названия|---


14-28230
Vit1251
2002-10-16 20:04
2002.12.09
Помогите с созданием окна и функциями


14-28254
Ketmar
2002-11-16 20:35
2002.12.09
я сильный....


1-28004
GooRoo
2002-11-29 21:19
2002.12.09
масштабируемость приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский