在 Rails 控制器中,我想url
通过向它发出请求并检查响应不是 50X 来验证用户输入的 URL(例如,它在一个变量中)。我怎样才能做到这一点?
问问题
161 次
2 回答
1
您可以使用模块从控制器发送请求,Net::Http
如下所示
uri = URI('http://festivalsherpa.com')
response = Net::HTTP.get_response(uri)
response.to_hash["status"] will return you proper response code
于 2012-11-24T05:56:43.310 回答
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语句来处理
case response.code
when "200"
<some code>
when "500"
<some code>
end
等等..
于 2012-11-24T06:46:37.373 回答