我如何解析&#39; <amazon :: ecs :: response:0x000001069911d0>&#39;在亚马逊的API响应中?</amazon :: ecs :: response:0x000001069911d0>

时间:2014-09-14 18:12:27

标签: ruby-on-rails ruby amazon-web-services amazon-s3

我正在尝试使用亚马逊的API并使用以下代码和amazon ecs gem搜索一本书,这是我的Ruby on Rails应用程序的一部分:

Amazon::Ecs.options = {
  :AWS_access_key_id => 'myaccesskeyid',       
  :AWS_secret_key => 'mysecretkey'
}


res = Amazon::Ecs.item_search('ruby')
puts res

在终端,我想我得到了回应,因为我最终回来了:

<Amazon::Ecs::Response:0x000001069911d0>

如何访问数据或通过此解析?

2 个答案:

答案 0 :(得分:0)

根据docs,您可以检查您的回复对象是否有任何错误,并使用以下方法检查总结果:

res.has_error?            # return true if there is an error
res.total_results         # return total results

假设您的响应对象没问题,您可以遍历每个项目并提取您感兴趣的数据。例如:

res.items.each do |item|
  # retrieve string value using XML path
  item.get('ASIN')
  item.get('ItemAttributes/Title')
end

不确定你是否已经尝试过,但看起来是个好地方。

答案 1 :(得分:0)

403 Forbidden可能意味着您未通过AWS访问密钥和密钥正确发送。

Amazon :: Ecs.options = {   :AWS_access_key_id =&gt; 'myaccesskeyid',
  :AWS_secret_key =&gt; 'mysecretkey' }

'myaccesskeyid'和'mysecretkey'应该是您从AWS收到的字母数字