通过发出请求来验证URL

时间:2012-11-24 05:42:42

标签: ruby-on-rails validation url request

在Rails控制器中,我想通过向其发出请求来验证用户输入的URL(例如,它在变量url中),并检查响应是否为不是50X。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

您可以使用Net::Http模块从控制器发送请求,如下所示

uri = URI('http://festivalsherpa.com')
response = Net::HTTP.get_response(uri)

response.to_hash["status"] will return you proper response code

答案 1 :(得分:0)

还有一种方法

你可以用更有意义的方式做:

uri = URI.parse(your_url)
connection = Net::HTTP.new(uri.host)
request = Net::HTTP::Get.new(uri.request_uri) # For post req, you can replace 'Get' by  'Post'
response = connection.request(request)

您可以看到返回的内容:

p response.body

如果返回的响应是JSON,那么您可以执行

JSON.parse(response.body)  #It will give you hash object

您可以查看回复代码/状态

  p response.code

如果您想处理状态代码,则可以通过案例陈述处理

case response.code
 when "200"
     <some code>
 when "500"
     <some code>
 end

等等..