2

Rails アプリで、リソース (ユーザー提供の URL) の HTTP HEAD リクエストを作成して、そのリソースが存在することを確認したいと考えています。妥当な時間待機した後にメソッドが確実に失敗するように、タイムアウトも必要です。これを達成するための最も簡単な方法は何ですか (可能であれば標準ライブラリを使用します)?

4

1 に答える 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 に答える