gpt4 book ai didi

ruby - 如何在使用 Ruby 的 OpenUri 下载之前获取 HTTP header

转载 作者:数据小太阳 更新时间:2023-10-29 06:48:28 26 4
gpt4 key购买 nike

我目前正在使用 OpenURI 下载 Ruby 中的文件。不幸的是,如果不下载完整文件,似乎不可能获得 HTTP header :

open(base_url,
:content_length_proc => lambda {|t|
if t && 0 < t
pbar = ProgressBar.create(:total => t)
end
},
:progress_proc => lambda {|s|
pbar.progress = s if pbar
}) {|io|
puts io.size
puts io.meta['content-disposition']
}

运行上面的代码表明它首先下载了完整的文件,然后才打印我需要的标题。

有没有办法在下载完整文件之前获取 header ,以便在 header 与我预期的不同时取消下载?

最佳答案

你可以使用 Net::HTTP 来解决这个问题,例如:

require 'net/http'

http = Net::HTTP.start('stackoverflow.com')

resp = http.head('/')
resp.each { |k, v| puts "#{k}: #{v}" }
http.finish

另一个例子,这次获取了精彩书籍 Object Orient Programming With ANSI-C 的标题:

require 'net/http'

http = Net::HTTP.start('www.planetpdf.com')

resp = http.head('/codecuts/pdfs/ooc.pdf')
resp.each { |k, v| puts "#{k}: #{v}" }
http.finish

关于ruby - 如何在使用 Ruby 的 OpenUri 下载之前获取 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17454956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com