错误码

当请求 API 出现错误时,你会收到对应的错误信息,本文档将介绍和风天气API的错误码和错误信息。

注意: 你应该妥善的处理遇到的错误,当错误发生时,请暂停请求并进行排查。你不应该放任错误的继续发生,否则这些错误的请求看起来是一种DDoS攻击,极端情况下,我们的安全策略可能冻结你的帐号。

错误信息看起来是这个样子:

HTTP/2 400
Content-Type: application/problem+json

{
  "error": {
      "status": 400,
      "type": "https://dev.qweather.com/docs/resource/error-code/#invalid-parameters",
      "title": "Invalid Parameters",
      "detail": "Invalid parameters, please check your request.",
      "invalidParams": [
          "lang"
      ]
  }
}

INVALID PARAMETER#

HTTP response status code: 400

错误的参数,一般指的是传入了错误的参数值,具体错误的参数请参考响应中的error.invalidParams

MISSING PARAMETER#

HTTP response status code: 400

缺失参数,当一些必选参数没有传递时将报错,具体缺失的参数请参考响应中的error.invalidParams

NO SUCH LOCATION#

HTTP response status code: 400

没有查询到地点信息或不支持的位置,例如查询一个不存在的城市或者一个错误的Location ID,此时你应该检查并更改查询的内容。

DATA NOT AVAILABLE#

HTTP response status code: 400

数据暂时不可用。当你查询的数据超过我们支持的范围后将收到此错误码,例如查询一个地点的空气质量,而我们还不支持这个地点的空气质量,请尝试其他地点进行查询。

UNAUTHORIZED#

HTTP response status code: 401

身份认证失败,你需要检查你的KEY或Token,考虑到安全因素,我们不会返回具体错误的原因。

NO CREDIT#

HTTP response status code: 403

你的帐号内没有足够的可用额度、节省计划或其他额度,请求被拒绝。你需要先增加可用额度或购买其他额度之后再继续请求数据。

OVERDUE#

HTTP response status code: 403

由于你帐号内有逾期未支付的账单,请求被拒绝。你需要先完成逾期账单的支付再继续请求数据。

SECURITY RESTRICTION#

HTTP response status code: 403

当前请求违反了你设置的请求限制,请求被拒绝,考虑到安全因素,我们不会返回具体违反了哪些请求限制。请检查:

  • 该请求是否与你的请求限制有冲突
  • 你的请求限制是否合理
  • 如果请求不是你发送的,请考虑你的凭据可能已经泄露

INVALID HOST#

HTTP response status code: 403

使用了错误的API Host,请求被拒绝。请在控制台设置中查看自己的API Host。了解如何创建API请求

ACCOUNT SUSPENSION#

HTTP response status code: 403

由于用户帐号被冻结,请求被拒绝。了解帐号冻结

DEPRECATED#

HTTP response status code: 403

当前你请求的 API 已经弃用且,请在开发文档中查找并使用最新版本。

FORBIDDEN#

HTTP response status code: 403

你暂时无权限请求这个数据。你可以提交工单向我们了解详情。

NOT FOUND#

HTTP response status code: 404

输入了错误的路径或错误的路径参数,无法找到该资源。

METHOD NOT ALLOWED#

HTTP response status code: 405

使用了GET以外的方法请求API。

TOO MANY REQUESTS#

HTTP response status code: 429

短时间内请求过多,超过了QPM限制或累积了大量错误请求。你必须等待一段时间或修复错误后再进行重试,否则持续的429状态可能会被认为是滥用服务资源或DDoS攻击,这将导致你的账号被冻结。关于如何设置重试时间,请参考指数退避算法

OVER MONTHLY LIMIT#

HTTP response status code: 429

对于包年包月订阅用户,当本月请求量超过限额后将收到此错误码,请等待至下个月再试,或者联系你的商务经理升级订阅方案。

UNKNOWN ERROR#

HTTP response status code: 500

我们的服务发生了未知故障,请提交工单与我们联系。