我想使用亚马逊产品广告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参数,并且很难找到该错误响应的另一个问题的来源。
有什么想法吗?
答案 0 :(得分:1)
有趣的是,如果我从浏览器执行相同的请求,我会得到不同的响应: (缩写)
您的请求缺少必需参数。必需参数包括AssociateTag。
因此,您需要修改Java REST示例代码,以在请求中包含必需的“AssociateTag”参数。我这样做修改了SignedRequestHelper类。
然后它可以工作,你得到预期的响应。
答案 1 :(得分:0)
我发现问题是需要associateTag。我添加了associateTag和示例代码。