我想使用Deplhi TWebBrowser在表单中显示“新闻”页面.新闻页面是一个简单的 HTML页面,我们不时上传到我们的网站,可能会从各种工具输出.显示很好但我想在我的应用程序中知道自从我上次
例如.:
procedure TForm1.Button1Click(Sender: TObject); var Url: string; Http: TIdHTTP; LastModified: TDateTime; ContentLength: Integer; begin Url := 'http://yoursite.com/newspage.html'; Http := TIdHTTP.Create(nil); try Http.Head(Url); LastModified := Http.Response.LastModified; ContentLength := Http.Response.ContentLength; ShowMessage(Format('Last-Modified: %s ; Content-Length: %d', [DateTimeToStr(LastModified), ContentLength])); finally Http.Free; end; end;
触发TWebBrowser.DocumentComplete事件时,发出HEAD请求并存储LastModified和ContentLength变量.
然后定期发出HEAD请求以测试更改(例如通过TTimer).
这些Header参数取决于Web服务器实现,并且可能不会在服务器上返回文件系统日期时间(例如,动态页面).您的服务器可能根本不会返回这些参数.
例如,对于IIS上的静态HTML页面,Last-Modified将返回文件系统上次修改日期时间,这是您想要的.
对于动态内容(例如php,asp,.NET等),如果你控制web服务器,你也可以在服务器端添加你自己的自定义HTTP响应头来指示文件系统的日期时间(例如X -Last-Modified)或根据需要设置响应Last-Modified标头,并在客户端检查此标头.
如果需要检查/散列整个HTTP内容,则需要发出GET方法:http.Get(URL)