Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Ruby'检查Rails中是否存在URL;s Net::HTTP类,不适用于存在的某些URL_Ruby On Rails_Net Http - Fatal编程技术网

Ruby on rails 使用Ruby'检查Rails中是否存在URL;s Net::HTTP类,不适用于存在的某些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是否存在。我的应用程序获取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,例如,它可以很好地用于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>
#