Форум: "Сети";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
ВнизМониторинг файла в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c