【问题标题】:Ruby on Rails basic use of RiotGames API (need explanation, solution already found)Ruby on Rails RiotGames API 的基本使用(需要解释,已经找到解决方案)
【发布时间】:2018-11-14 22:42:01
【问题描述】:

首先你必须知道我是一个初学者,我正在努力学习所以我几乎什么都不知道。

basic page of the API,有一个 curl 命令作为示例,向我们展示如何发出请求。

我使用的是 Ruby on Rails,所以我使用“curl-to-ruby”网站来翻译它,但它没有按预期工作。

我想让它告诉我这个:

uri = URI.parse("REQUEST_URL")
response = JSON.parse(Net::HTTP.get(uri))

相反,我得到了这个:

uri = URI.parse("REQUEST_URL")
response = Net:HTTP.get_response(uri)

我什么都不懂,我以为我不需要并且只使用“curl-to-ruby”,但显然我真的需要这个。

你能解释一下吗? 或者给我链接? 还是需要阅读的内容(curl、API、http)?

非常感谢,祝你有美好的一天。

【问题讨论】:

    标签: ruby-on-rails json http parsing


    【解决方案1】:

    这是因为该命令不只返回内容,它返回整个 HTTP 响应对象,包括标头和正文。您需要提取响应正文并使用 JSON.parse() 对其进行解析,例如

    JSON.parse(response.body)
    

    在此处查看文档:https://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html#method-c-get_response

    (此外,cURL 命令中没有任何内容会提示转换器响应的内容类型应为 JSON(例如,可能是“接受”标头或其他内容),所以即使它能够要生成添加 JSON.parse 部分的额外代码,它无法知道在这种情况下这样做是否合适。)

    【讨论】:

      猜你喜欢
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      相关资源
      最近更新 更多