主页文档代码示例API 参考公告模型发行说明常见问题GitHub视频
开发者中心API 状态支持
文档
开发者中心API 状态支持

解决 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-LengthTransfer-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 操作。
  • 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,则会出错。

如果你仍然遇到问题,你可以打开 支持案例 以获取故障排除方面的帮助。


此页面对您有帮助吗?