在Rails中获取HTTP响应

时间:2012-11-24 20:01:29

标签: ruby-on-rails http url

在我的Rails控制器中,我有用户输入的url

url_parsed = URI.parse(url)
response = Net::HTTP.get_response(url_parsed)

如果用户输入www.google.com,则会提供

undefined method `request_uri' for #<URI::Generic:0x00000002e07908 URL:www.google.com>

response = ...行。

我希望它显示我的错误页面,而不是此错误。我该怎么办?

1 个答案:

答案 0 :(得分:1)

不知道您的问题是否无效,或者如何在视图中使用错误消息。

为什么会出现错误

修改

我认为这是因为'www.google.com'中没有协议,'http://www.google.com'应该正常工作

如何显示错误

拯救错误:

error = nil
begin
  url_parsed = URI.parse(url)
  response = Net::HTTP.get_response(url_parsed)
rescue => error
end
if error
  @error_message = "Your URL wasn't good enough"
  # or you can use error.message if you want
  # then use @error_message in your view
else
  # do stuff when ok
end