我可以翻译成中文。问题是:我能获取HTTP文件修改日期吗?

6

我想检查一下某个位于网络上的文件上次是否被修改过。有没有可能通过获取http头信息来读取该文件的最后修改时间(或上传时间)来实现?

2个回答

10
您可以使用内置的Net::HTTP库来为您完成大部分工作:
require 'net/http'

Net::HTTP.start('stackoverflow.com') do |http|
  response = http.request_head('/robots.txt')

  response['Last-Modified']
  # => Sat, 04 Jun 2011 08:51:44 GMT
end
如果你想的话,你可以使用 Time.parse 将其转换为一个正确的日期。

4

正如@tadman在他的答案中所说,HTTP "HEAD"请求是检查最后修改日期的正确方式。

您还可以使用条件GET请求并使用“IF-*”修饰符标头进行操作。

使用哪种方法取决于您是否打算立即下载页面。如果您只想要日期,请使用HEAD。如果您想要内容并且有所更改,请使用带有“IF-*”标头的GET。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接