我使用以下代码向HTTParty Ruby gem发送HTTP请求:
require 'httparty'
require 'pry'
page = HTTParty.get('http://www.cubuffs.com/')
binding.pry
您可以验证该网址是否有效。在使用Pry探索结果时,我得到以下结果:
[1] pry(main)> page
=> nil
[2] pry(main)> page.code
=> 404
[3] pry(main)> page.response
=> #<Net::HTTPNotFound 404 Not Found readbody=true>
我非常确定我的代码没有任何问题,因为我可以替换其他网址并按预期工作。出于某种原因,来自此域的URL返回404代码。任何想法在这里有什么问题以及如何解决它?
答案 0 :(得分:3)
该网站的所有者正在从浏览器中检查用户代理,并且不喜欢HTTParty正在使用的用户代理。您可以通过在浏览器中添加用户代理标头来获取该页面,这是Chrome中的标题:
Mozilla / 5.0(Macintosh; Intel Mac OS X 10_12_3)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 56.0.2924.87 Safari / 537.36
修改您的代码,如下所示:
malloc