Rails アプリで、リソース (ユーザー提供の URL) の HTTP HEAD リクエストを作成して、そのリソースが存在することを確認したいと考えています。妥当な時間待機した後にメソッドが確実に失敗するように、タイムアウトも必要です。これを達成するための最も簡単な方法は何ですか (可能であれば標準ライブラリを使用します)?
質問する
4860 次
1 に答える
11
このスニペットを試してください:
require 'net/http'
Net::HTTP.start('www.some_site.com') do |http|
http.open_timeout = 2
http.read_timeout = 2
req = Net::HTTP::Head.new('/')
http.request(req).each { |k, v| puts "#{k}: #{v}" }
end
これがあなたが探しているものであることを願っています。
アップデート
head
みたいな方法があるから
def head(path, initheader = nil)
request(Head.new(path, initheader))
end
次のスニペットも使用できます。
require 'net/http'
Net::HTTP.start('www.rubyinside.com') do |http|
http.open_timeout = 2
http.read_timeout = 2
http.head('/').each { |k, v| puts "#{k}: #{v}" }
end
于 2011-11-04T19:32:13.973 に答える