Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.031 c
2-1147775274
Id
2006-05-16 14:27
2006.06.04
Безопасность в FB


6-1138639504
parovoZZ
2006-01-30 19:45
2006.06.04
Кнопка и TWebBrowser


15-1146887520
Little)Lamer
2006-05-06 07:52
2006.06.04
C++


15-1146912971
Внук
2006-05-06 14:56
2006.06.04
С праздником


4-1142155221
Handle
2006-03-12 12:20
2006.06.04
Снова процессы




   Наверх