我完全有能力使用 Product Advertising API 生成 LookupItem 请求,包括使用参数构建 URL 字符串并签署请求,但是当我尝试采用模型时,我为 MWS RequestReport 请求修改它,我收到此错误消息:
“提供的部分名称或版本无效 - onca/2011-01-01”
出于某种神秘的原因,当我的参数显然是:
Map<String, String> params = new HashMap<String, String>();
params.put("Action", "RequestReport");
params.put("Version", "2011-01-01"); //NOT "onca/2011-01-01" (version may be old)
params.put("SellerId", MERCHANT_ID);
params.put("SignatureVersion", "2");
params.put("SignatureMethod", "HmacSHA256");
params.put("ReportType", "_GET_MERCHANT_LISTINGS_DATA_");
//timestamp and signature params are added in the method that signs this request
requestUrl = helper.sign(params);
我在这里想念什么?签署这个“规范查询字符串”的方法也没有添加它,正如我前面提到的,它成功签署了 LookupItem 请求。这是否与亚马逊解释签名的方式有关?但是,它不会说 URL/编码不匹配吗?有什么理论吗?需要更多代码或信息吗?