amazon-web-services - 更新数量时,Amazon sp-api 不正确的 URL 编码/解码字符
问题描述
在 Amazon Listing API 中包含特殊字符(例如“#”)时出现问题。例如,sku,HP-2DP98AA#ABC-200621 将更新数量为 20。但是,Amazon API 响应InvalidSignature
在向亚马逊提交请求之前,我确实应用了 SKU 的编码,但一直失败。任何的想法?
解决方案
AWS 文档sell -partner-api-docs Rest API 关于如何修补项目 URL 是PATCH /listings/2020-09-01/items/{sellerId}/{sku}。这意味着sku需要像这样添加包含“#”的URL。
/listings/2020-09-01/items/{your sellerId}/HP-2DP98AA#ABC-200621
此请求 URL 将导致异常或来自 AWS 的 InvalidSignature,因为 URL 中的“#”需要将“#”编码为“%23”,如下所示:
/listings/2020-09-01/items/{your sellerId}/HP-2DP98AA%23ABC-200621
此外,还需要添加 SellerId、marketplaceIds 和 sku 参数。
此外,AWS4 规范请求如下所示:
AWS4 Canonical Request: '"PATCH
/listings/2020-09-01/items/{your sellerId}/HP-2DP98AA%2523ABC-200621
marketplaceIds={your marketplaceIds}&sellerId={your sellerId}&sku=HP-2DP98AA%23ABC-200621
content-type:application/json; charset=utf-8
host:sellingpartnerapi-na.amazon.com
x-amz-access-token:Atza|...
x-amz-date:20210831T190152Z
x-amz-security-token:Fwo...
content-type;host;x-amz-access-token;x-amz-date;x-amz-security-token
d1809d68......"
推荐阅读
- python - 用户对象没有客户属性
- python - 计算累积和直到出现零
- azure - 外部阶段 - Blob 与 Gen2
- entity-framework-core - 当我使用单独的 IQueryable 泛型方法时,Entity Framework Core 为 MySQL 生成错误的查询
- c# - 使用 Process (.net core) 执行持久的 powershell
- c++ - 将整数添加到空指针地址返回意外结果
- python-3.x - 使用python查找方程的全局最大值
- datatables - Kendo Grid:数据工具栏搜索功能在自定义 SharePoint 页面中不起作用
- python - Python Selenium:执行此脚本 100 次
- kubernetes - k8s master 进入 Not Ready 状态