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