Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

Мониторинг файла в Internet   Найти похожие ветки 

 
Alexis ©   (2006-01-30 23:42) [0]

Добрый вечер!
Возникла такая задача - из программы надо отслеживать изменения в некотором файле по адресу www.site.com/some_content.xml.
Возможно-ли это осуществить?
На данный момент не нашел ничего лучше, чем по таймеру скачивать файл www.site.com/some_content.xml и сравнивать его содержимое со старым файлом. Но это конечно неоправданная нагрузка и лишний трафик, т.к. сожержимое some_content.xml не слишком часто обновляется.
Пока реализованно как

void TForm1::downloadWWWFile(AnsiString hostname, AnsiString remoteFileName, AnsiString localFileName, TClientSocket *socket)
{
   ...
   queryString = "GET " + remoteFileName + "   HTTP/1.0" + "\x0D\x0A" + "Host: " + hostname + "\x0D\x0A\x0D\x0A";
   returnCode = socket->Socket->SendText(queryString);
   //скачиваем файл
   ...
}

Буду благодарен за любую помощь.


 
Reindeer Moss Eater ©   (2006-01-31 00:12) [1]

На данный момент не нашел ничего лучше, чем по таймеру скачивать файл

А ничего другого здесь и не придумать, как бы редко этот файл не обновлялся. Периодически проверять на новизну.


 
Reindeer Moss Eater ©   (2006-01-31 00:18) [2]

Скачивать можно и не весь файл. Определяешь максимальное смещение от начала, по которому можно судить о том, что файл не изменился (если до позиции смещения файл не отличается от дисковой копии) и качаешь только до смещения.


 
Alexis ©   (2006-01-31 20:31) [3]


> и качаешь только до смещения.

Это как?


 
Reindeer Moss Eater ©   (2006-01-31 21:03) [4]

Можно с помощью заголовков запроса (указывая начало и длину контента)
Но лучше руками, прекращая чтение после того, как считано нужное кол-во байт.


 
programania ©   (2006-01-31 21:27) [5]

Следите за IE
Запрос IE:

GET http://programania.com/FON1.GIF HTTP/1.0
Accept: */*
Referer: http://programania.com/index.htm
Accept-Language: ru
Proxy-Connection: Keep-Alive
If-Modified-Since: Mon, 12 Jul 2004 16:33:01 GMT
If-None-Match: "50930-47-e80c0940"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: programania.com


Ответ сервера:

HTTP/1.1 304 Not Modified
Date: Wed, 25 Jan 2006 13:47:19 GMT
Server: Apache/2.0.53 (Unix)
Connection: close
ETag: "50930-47-e80c0940"

и IE уже не качает


 
Reindeer Moss Eater ©   (2006-01-31 22:03) [6]

А если запрашиваемый ресурс - это не дисковый файл, кто посчитает его ETag?


 
kaZaNoVa ©   (2006-02-02 04:45) [7]

ETag - а что это такое:))?



Страницы: 1 вся ветка

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
2-1147855804
NewBit
2006-05-17 12:50
2006.06.04
Свойство компонентов


2-1147666221
Rubey
2006-05-15 08:10
2006.06.04
Обновление главной формы


3-1144674511
kyn66
2006-04-10 17:08
2006.06.04
Вложенный Select


5-1133311365
asdqwer
2005-11-30 03:42
2006.06.04
Динамическое присвоение метода компоненту в DLL


5-1132857844
dvp_Dima
2005-11-24 21:44
2006.06.04
Инкапсуляция и взаимодействие