问题描述
|
我正在按照这里的教程尝试使用Amazon Product Advertising API。
在进行任何编码之前,我会尝试按照本教程进行操作,并在线使用“签名请求帮助器”表单来证明这一概念。我输入我的访问密钥ID和秘密访问密钥,然后在“未签名的URL”框中输入以下内容:
_http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService
&Version=2010-11-01
&Operation=ItemSearch
&SearchIndex=Books
&Keywords=harry+potter
我将“签名URL”框的内容复制并粘贴到浏览器的地址栏中(使用正确的访问密钥和签名):
_http://ecs.amazonaws.com/onca/xml?AWSAccessKeyId = [MY_ACCESS_KEY]&Keywords = harry%20potter&Operation = ItemSearch%0D&SearchIndex = Books%0D&Service = AWSECommerceService%0D&Timestamp = 2011-05-30T07%3A56%3A17.000Z -11-01%0D&Signature = [MY_SIGNATURE]
作为回报,我收到HTTP 500 Internal Server Error。
(请注意,我在两个示例超链接之前都插入了unscore,因为stackoverflow不允许新手使用两个以上的超链接。)
我曾经尝试过IE8和Chrome,也曾尝试过.co.uk域,因为我居住在英国。我也没有看过AWS论坛。任何帮助,将不胜感激...
解决方法
我尝试使用访问密钥ID和秘密访问密钥在您链接到的页面上生成签名URL,但确实得到了正确的响应。
我注意到的一件事是,您签名的URL包含一个额外的字符(%0D-换行符?),该字符以某些请求参数值结尾。当您在未签名的URL输入中复制示例URL时,是否添加了这些字符?请尝试修复未签名的URL,直到这些字符未出现在“签名的URL”框中,然后再次尝试该签名的URL。