对Amazon Product Advertising API的Java REST请求失败

时间:2012-08-30 12:11:52

标签: amazon amazon-product-api

我想使用亚马逊产品广告API搜索产品。

我已经开始使用Java示例代码来搜索产品(com.advertising.api.sample)。

编译并运行正常,但是给出了一个空指针异常,因为解析响应假设一切正常(对于样本来说没问题)。

所以,我使用'curl'进行相同的查询....

curl http://ecs.amazonaws.com/onca/xml?AWSAccessKeyId=&amp; ItemId = 0545010225&amp; Operation = ItemLookup&amp; ResponseGroup = Small&amp; Service = AWSECommerceService&amp; Timestamp = 2012-08-30T11%3A31%3A54Z&amp; Version = 2009-03-31&amp; Signature = < / p>

显示此输出:

[1] 17603 [2] 17604 [3] 17605 [4] 17606 [5] 17607 [6] 17608 [7] 17609 [2]完成ItemId = 0545010225 [3]完成操作= ItemLookup [4]完成ResponseGroup =小 [5]完成服务= AWSECommerceService [6]完成时间戳= 2012-08-30T11%3A31%3A54Z [7]完成版本= 2009-03-31

并且XML返回描述了错误:

AWS.MissingServiceParameter您的请求缺少Service参数。请添加服务参数

但是,正如您可以从curl命令输入及其日志记录中看到的那样,服务参数存在并设置为:API指定的AWSECommerceService

我意识到我可能做错了什么,但它似乎不是Service参数,并且很难找到该错误响应的另一个问题的来源。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

有趣的是,如果我从浏览器执行相同的请求,我会得到不同的响应: (缩写)

您的请求缺少必需参数。必需参数包括AssociateTag。

因此,您需要修改Java REST示例代码,以在请求中包含必需的“AssociateTag”参数。我这样做修改了SignedRequestHelper类。

然后它可以工作,你得到预期的响应。

答案 1 :(得分:0)

我发现问题是需要associateTag。我添加了associateTag和示例代码。