Ruby on rails 使用Ruby'检查Rails中是否存在URL;s Net::HTTP类,不适用于存在的某些URL
所以我想实现一个功能,基本上检查在搜索框中输入的URL是否存在。我的应用程序获取URL并使用Net::HTTP类向URL发送请求,并检查HTTP状态代码是否为200 我的函数中检查URL是否存在的代码基本上如下所示:Ruby on rails 使用Ruby'检查Rails中是否存在URL;s Net::HTTP类,不适用于存在的某些URL,ruby-on-rails,net-http,Ruby On Rails,Net Http,所以我想实现一个功能,基本上检查在搜索框中输入的URL是否存在。我的应用程序获取URL并使用Net::HTTP类向URL发送请求,并检查HTTP状态代码是否为200 我的函数中检查URL是否存在的代码基本上如下所示: url = URI.parse(input_url) req = Net::HTTP.new(url.host, url.port) res = req.request_head(url.path) 然后我检查res.code是否为200,如果不是,则我的应用程序假定URL不存在
url = URI.parse(input_url)
req = Net::HTTP.new(url.host, url.port)
res = req.request_head(url.path)
然后我检查res.code是否为200,如果不是,则我的应用程序假定URL不存在并处理错误
我正在处理分类广告的URL,例如,它可以很好地用于craigslist上的广告
给我一个200状态码
但是,对于kijiji上存在的任何广告(或由易趣运营的易趣分类广告),例如:
它一直给我一个500错误代码,这意味着有一个内部服务器错误
有人对出了什么问题有什么建议吗 这个url对我来说很好。没有按你的方式尝试,但下面是使用httparty的响应。返回200
require 'httparty'
input_url = 'http://www.kijiji.ca/v-hand-tool/city-of-toronto/auger-style-flex-installer-bit-for-wood/1129757133'
response = HTTParty.get(input_url)
p response.code
可能只是您正在尝试的服务器没有显式地处理
HEAD
请求。在大多数情况下,执行常规的GET
。比如说
# url = "http://www.kijiji.ca/v-hand-tool/city-of-toronto/auger-style-flex-installer-bit-for-wood/1129757133"
url = URI.parse(input_url)
req = Net::HTTP.new(url.host, url.port)
res = req.request_get(url.path)
这会回来的
#<Net::HTTPOK 200 OK readbody=true>
#