解决 400 错误
了解如何解决 400 个错误。
400 的回复可能有许多原因。
权限和证书
确保以下几点:
- 您的个人资料和应用程序所需的角色已获得批准。
- 卖家账户处于活动状态。
如果不是,并且该卖家返回了 400 错误,请联系卖家并要求他们导航至 卖家中心 > 设置 > 账户信息 > 收费信息。如果 “付款信息” 页面显示要求更新信用卡的横幅,请卖家更新其信用卡信息。等待 48 小时让更新在所有亚马逊系统中传播。如果卖家账户未使用 90 天或更长时间,该账户将被标记为休眠,并建议卖家更新其信用卡。等待 48 小时以确保成功更新。之后,该账户可以进行 API 调用。
如果权限和凭证正确,则请求可能存在问题。
请求问题
来自 SP-API 的标准响应采用应用程序/JSON 格式。如果您收到文本/HTML 格式的响应,则错误是在 SP-API 处理请求之前引发的。
示例:
{
HTTP/1.1 400 Bad Request Server:
Server Date: Tue, 16 May 2023 06:02:44 GMT
Content-Type: text/html
Transfer-Encoding: chunked Connection: close
}
SP-API 要求请求必须与 HTTP RFC 7230。如果您收到带有 HTML 响应的 400 状态码,而不是标准的 SP-API 响应正文,请确保您的请求与 RFC 7230 一致。 最常见的错误原因是 GET 请求包含正文或内容长度标头,或者主机标头重复或格式不正确。 其他可能的错误包括:
- 包括一个机构,
Content-Length
标题,或Transfer-Encoding
GET/HEAD 请求的标头 Content-Length
是不可解析的值或无效的数字- 多个
Content-Length
标题 - 两者都存在
Content-Length
和Transfer-Encoding
标题 - 重复或格式不正确
Host
标题 - 空标题或带空格的行
- 不符合 RFC 标准的多行标题
- 无结束符的标头行
- 标头行没有冒号分隔符
- URI 或标头包含回车符、空字符或控制 (CTL) 字符
- 请求末尾为空行
- 请求中无 URI
- 格式错误的 HTTP 方法
检查请求
检查请求的方法取决于您的 HTTP 客户端。查看以下可能的方法。
- 如果您能够创建类似的 curl 或 wget 命令来调用 SP-API,但没有遇到同样的问题,这可能表明您的 HTTP 客户端出现了问题。
- 确定要发送到 SP-API 的 HTTP 请求是在哪里创建的,并检查这些请求。
- 检查请求的所有标头和 URI 信息。一些客户端提供获取标题信息的编程方式。
- 检查 HTTP 客户端的日志记录能力,或者是否能够通过配置启用日志记录。
- 如果客户端是开源 HTTP 客户端,则可以查看代码以确定请求是如何创建的,或者是否有任何错误的假设。
- 如果您在发送请求之前使用适配器或插件,请确保他们没有以不希望的方式修改请求。
- 检查您是否可以启用电汇日志,以提供有关传出请求的更多详细信息。
如果您仍收到 400 个回复,则问题可能是由于应用程序出现问题所致。
应用程序问题
由于应用程序出现问题,可能会返回几个错误:
Developer ID XXXX-XXXX-XXXX is not associated with the application id.
: 确保已为正确区域的混合应用程序提供了开发者 ID,并且该应用程序已提交审核。application is missing OAuth setup.
: 确保应用程序有重定向 URI。
如果您仍收到 400 个回复,则问题可能是由于 API 的要求造成的。
API 要求
确保根据文档正确传递所有参数,并遵守所调用的 API 的要求:
- 亚马逊配送 API:确保卖家已注册亚马逊物流。
- 卖家配送 API:如果在订单发货后尝试通过 API 配送,则可以返回 400 例外情况。
- 报告 API:如果计划了只能请求的报告,则可能会抛出 400 异常。例如,
GET_MERCHANT_LISTINGS_ALL_DATA
只能请求报告。- 请求结算报告可能会导致 400 例外情况。无法请求或安排结算报告。它们是由亚马逊自动安排的。您可以使用搜索这些报告
getReports
操作。
- 请求结算报告可能会导致 400 例外情况。无法请求或安排结算报告。它们是由亚马逊自动安排的。您可以使用搜索这些报告
- Feeds API: 创建 Feed 时,
contentType
中指定 第 3 步。上传 Feed 数据 必须匹配contentType
期间指定 第 1 步。创建 Feed 文档。亚马逊建议使用 UTF-8 字符编码。这两个步骤中的内容类型不匹配将导致 Feed 上传失败,并可能生成 400 异常。有关更多信息,请参阅 Feeds API 用例指南。 - Feeds API: 更新商品价格和数量时,如果卖家账户中没有商品,
InvalidInput
将返回错误。 - 配送出库 API: 你可以收到
Value for parameter SellerId is invalid. Reason: InvalidValue.
如果您在澳大利亚、加拿大、德国、西班牙、法国、意大利、日本、墨西哥、英国、美国或中国以外的商城使用 API,则会出错。
如果你仍然遇到问题,你可以打开 支持案例 以获取故障排除方面的帮助。
Updated 23 days ago
此页面对您有帮助吗?