如何使用 Ruby 监控端点的状态?

How can I monitor an endpoint's status with Ruby?

我想使用 Ruby 监控几个端点。我想获得他们的状态代码(例如 200)。我目前是这样做的

uri = URI.parse("http://example-domain.com")
response = Net::HTTP.get_response(uri)
status = response.code

但是,如果 URL 无效,则处理错误。我想要一些通知我 URL 无效的东西(最好通过将“404”返回到状态变量)

提前致谢

uri = URI.parse("http://example-domain.com/wrong")
begin
  response = Net::HTTP.get_response(uri)
rescue Exception
end
status = response ? response.code : '0'

使用rescue捕捉异常。像这样:

require 'uri'
require 'net/http'

uri = URI.parse("http://bad-example-domain.com")
begin
  response = Net::HTTP.get_response(uri)
rescue Exception => e
  p "Bad url: #{e}"
end
if response
  status = response.code
else
  status = "404"
end
p status

您可以在网上找到更多关于例外情况的信息,例如:http://www.tutorialspoint.com/ruby/ruby_exceptions.htm