|
Тема
|
за познаващи HTTP
|
|
Автор |
Pechenia (нема лабаво ;-) |
Публикувано | 24.07.02 14:34 |
|
Интересува ме има ли поле в HTTP хедъра за date/time, иначе казано мога ли като смъкна една страница с TWebBrowser да взема датата и времето на последния и ъпдейт.
Е, интересува ме и най-тарикатския начин да го взема.
Мерси предварително на всеки HTTP мастър.
чети и дишай по-леко
| |
Тема
|
Re: за познаващи HTTP
[re: Pechenia]
|
|
Автор |
Shveik (Администратор) |
Публикувано | 24.07.02 16:10 |
|
za sajalenia niama :))
svalia6 stranicata pravi6 i crc32 i sveriava6 s predi6noto ako ima razlika zna4i e promenena......
a stranjucata e svalis6 s
var
HTMLDocument: IHTMLDocument2;
PersistFile: IPersistFile;
FileName, FileNameTmp: string;
P: PWideChar;
begin
HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
PersistFile := HTMLDocument as IPersistFile;
FileName := 'c:\........'
P := StringToOleStr(FileNameTmp);
PersistFile.Save(P, False);
ima i drugi po hubavi na4ini ama saga niamam vreme :)))
Редактирано от Shveik на 24.07.02 16:11.
| |
|
Тарикатският начин е да не сваляш всеки път цялата страница а само хедъра.
Това става най лесно така :
NMHTTP1.Head ('kitara.hit.bg');
Memo1.Text := NMHTTP1.Header;
което връща:
HTTP/1.1 200 OK
Date: Wed, 24 Jul 2002 13:28:04 GMT
Server: Microsoft-IIS/4.0 (Unix)
Last-Modified: Tue, 08 Jan 2002 14:42:46 GMT
ETag: "f78388-1a1c-3c3b0566"
Accept-Ranges: bytes
Content-Length: 6684
Connection: close
Content-Type: text/html
Last-Modified: Tue, 08 Jan 2002 14:42:46 GMT
в случая е това което ти трябва. За съжаление не всички сървъри връщат Last-Modified в хедъра в такъв случай е по добре да се ползва CRC.
AquilaX
____________
умният знае кога да говори, мъдрият знае кога да мълчи
| |
Тема
|
Re: за познаващи HTTP
[re: Shveik]
|
|
Автор |
Pechenia (нема лабаво ;-) |
Публикувано | 24.07.02 21:45 |
|
Значи начин има, друг в въпроса колко е актуална информацията за датата/часа...
Най-тарикатския начин за сваляне на страница е с TWebBrowser
WebBrowser.Navigate2 (url: string)
съответно съдържанието на документа:
WebBrowser.OnDocumentComplete ()
WebBrowser.OleObject.document.body.innerHTML - това е HTML-а на страницата
Открих и де са хедърите:
WebBrowser.OnBeforeNavigate2 (... Headers: OleVariant ...)
тъпото е че още не знам как да индексирам тоя Headers че да си изкопам полето LastModified... Тия хедъри ги има разбити и в TWebResponse - има полето LastModified, само дето не съм бачкал и с тоя обект...
Мерси на всички за помощта, търсенето обаче продължава - значи сега търся как от тия Headers на OnBeforeNavigate2 да се изкопа точно хедъра LastModified...
чети и дишай по-леко
| |
|
Мамка му, никой не спечели бирата дето мислех да черпя за решение на проблема...
Ето и решението, достойно за Delphi /1 ред код/:
WebBrowser.OnDocumentComplete ()
ShowMessage (WebBrowser.OleObject.document.lastModified);
Естествено и всички други хедъри са просто капсулирани в document, тъпото е че са в текстов формат - widestring, но това вече е друга тема...
чети и дишай по-леко
| |
|
хе хе що не каза че и бира има предвидена ...щяхме да се потрудим повече
____________
умният знае кога да говори, мъдрият знае кога да мълчи
| |
Тема
|
Re: за познаващи HTTP
[re: Pechenia]
|
|
Автор |
SDR (TaskMaster) |
Публикувано | 30.07.02 23:25 |
|
Spred mene naj tarikatskiq nachin e kakto nqkoj spomena da se drapne samo hedyra i tam ako ne pishe nachi naj weroqtno nqma kak da nauchish, no poneje w http nqma nishto zadaljitelno metota HEAD moje i da ne se poddarja koeto prawi zemaneto na hedara newazmojno a poleto za data sashto e preporachitelno taka che.... CRC mu e majkata :))
------------------------------
I got a COMPILER, and I'm not afraid to use it!
| |
|
|
|
|