【问题标题】:Request using HTTParty with API key使用带有 API 密钥的 HTTParty 请求
【发布时间】:2020-03-14 23:31:32
【问题描述】:

我正在尝试向此API 发出 GET 请求,该请求在 POSTMAN 中运行良好。在我的应用程序中,我使用 HTTParty 发出相同的请求,但我未能正确构造请求,导致 {"statusCode"=>404, "error"=>"Not Found", "message"=>"Not Found"} 返回。我尝试了很多变体,但没有找到正确的结构或参数命名。这是供参考,其中 ENV["X-CMC_PRO_API_KEY"] 是保存我的 api 密钥的环境变量。

url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest/'

request = HTTParty.get(url,
  {
    headers: {
    "key": ENV["X-CMC_PRO_API_KEY"],
    "Accept": "application/json"
    },
    data: {
      id: 1
    },
    params: {
      slug: self.slug
    }
  }
)
response = JSON.parse(request.body)

API 文档建议 cURL 应该是这样的

curl -H "X-CMC_PRO_API_KEY: apikey" -H "Accept: application/json" -d "id=1" -G https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest

这些是来自 POSTMAN 的屏幕,其中请求返回正确的响应。 image1image2

感谢您对帮助我完成此请求的任何意见。我是新手,HTTParty 文档没有帮助,我也没有找到任何其他类似的例子。

【问题讨论】:

  • 这并不是您问题的直接答案,但我有一种方法,我认为可能会对您有所帮助。在尝试使用 HTTPARTY 访问基于 eBay json 的 API 时,我遇到了与您非常相似的问题。我尝试了几个月,甚至联系了 eBay 开发团队。在我刚刚看到你的帖子之后,我突然想到问题可能以某种方式存在于 HTTPARTY 中(我不确定是否真的是这种情况),但我在谷歌上快速搜索了替代品并找到了 Typhoeus ,并且我在大约 5 分钟内启动并运行了它:github.com/typhoeus/typhoeus
  • Typhoeus 的语法几乎与 HTTPARTY 完全相同。到目前为止,我可以说的唯一显着区别是,必须实际“运行”请求才能触发它被发送。我希望这会有所帮助。
  • 感谢 @malikilam 我能够用 HTTParty 解决它。我似乎仍然无法弄清楚如何用 ENV 变量替换我的 API 密钥,你能帮忙吗?
  • 很高兴您能够解决问题。我相信我可以帮助使用环境变量。您可以通过首先在名为 your_application_folder/config/application.yml 的文件中定义环境变量来做到这一点。只需将变量名放在 ALLCAPS 中,并将您分配给它的值(在本例中为您的密钥)按以下格式放入此 application.yml 文档中: API_KEY: 08698h909j909e4de1eb9 。重新启动 Rails 应用程序后,您可以使用以下语法 ENV["API_KEY"] 访问应用程序中各处的变量。
  • 确保将 application.yml 文件添加到您的 .gitignore 文件中,这样您的密钥就不会存储在您的 git 存储库中。

标签: rubygems httprequest api-key ruby-on-rails-6 httparty


【解决方案1】:

这对我有用

headers = {
  'X-CMC_PRO_API_KEY' => "xxxxxxxxxxxxxxxxxxxxx"
}

url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest'
params = '?&slug=bitcoin'
response = HTTParty.get(url+params,
  :headers => headers
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 2018-12-25
    相关资源
    最近更新 更多