【问题标题】:HTTParty request returns 404 codeHTTParty 请求返回 404 码
【发布时间】:2017-02-11 20:08:13
【问题描述】:

我使用 HTTParty Ruby gem 发送 HTTP 请求,代码如下:

require 'httparty'
require 'pry'

page = HTTParty.get('http://www.cubuffs.com/')

binding.pry

您可以验证该 URL 是否有效。使用 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 并且它们按预期工作。出于某种原因,来自该域的 URL 返回 404 代码。任何想法这里有什么问题以及如何解决它?

【问题讨论】:

    标签: ruby httparty pry


    【解决方案1】:

    该站点的所有者正在从浏览器中检查用户代理,并且不喜欢 HTTParty 正在使用的那个。您可以通过包含来自浏览器的用户代理标头来获取该页面,这是来自 Chrome 的一个:

    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

    修改你的代码如下:

    require 'httparty'
    user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
    
    page = HTTParty.get('http://www.cubuffs.com/', headers: {"User-Agent": user_agent})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-19
      • 2016-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      相关资源
      最近更新 更多