# 响应状态码 (/zh-CN/realtime-media/transcoding/reference/response-code)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

## 云端转码 [#云端转码]

本文提供云端转码和观众端多码率的响应状态码。

在调用 RESTful API 过程中，你可能收到如下 HTTP 响应状态码：

- 如果 HTTP 状态码为 2XX，则请求成功。

- 如果 HTTP 状态码不为 2XX，则请求失败。

例如，请求失败时，你可能收到如下响应：

```json
# 400 Bad Request
{
  "message": "appid is invalid"
}
```

下表展示使用云端转码服务发起请求时，你可能会收到的所有响应状态码、对应的含义以及建议措施：

| 状态码                  | 含义                               | 建议措施                                                         |
| ----------- | -------------------- | -------------------------------- |
| `200 OK`                | 请求成功。                         | 无需排查。                                                   |
| **废弃** `201 Created`  | 任务已经在进行中，请勿用同一个 `builderToken` 重复开启任务。 | 无需排查。  |
| `202 Accepted`          | 服务端已经收到任务请求，但不代表执行完成。 | 因为不确定请求是否执行完成，所以建议通过 [`Query`](/zh-CN/api-reference/api-ref/cloud-transcoding/query) 方法查询执行状态，再进行下一步业务操作。 |
| `400 Bad Request`       | 请求的语法错误。可能是参数取值不符合要求，也可能是你的 App ID 未开通云端转码服务。 | 请结合响应 Body 中的 `message` 字段进一步排查。 |
| `401 Unauthorized`      | 用于 HTTP 基本认证的 `Authorization` 字段无效。 | 参考[实现 HTTP 基本认证](/zh-CN/realtime-media/transcoding/build/http-auth#实现-http-基本认证)检查你的 `Authorization` 字段。 |
| `403 Forbidden`         | 你的 App ID 尚未开通云端转码服务。 | 请联系[技术支持](https://ticket.shengwang.cn)开通。          |
| `404 Not Found`         | 找不到 transcoder。          | 使用退避策略进行查询请求，确认 transcoder 是否创建成功。    |
| `409 Conflict`          | 已存在重名 `instanceId` 的 transcoder 任务。 | 如果你想创建新的 transcoder，请先将旧的 transcoder 删除。 |
| `429 Too Many Requests` | 请求速率超过上限。                 | 等待一段时间后再重试。     |
| `500 Internal Server Error`           | 声网服务器内部错误。               | 使用退避策略进行查询请求或联系技术支持。                           |
| `501 Not Implemented`   | 该方法未实现。                     | 无需排查。                                               |
| `503 Service Unavailable` | 声网服务器暂时超载或在临时维护中。 | 使用退避策略进行查询请求或联系技术支持。 |
| `504 Gateway Timeout`   | 声网服务器内部错误，充当网关或代理的服务器未从上游服务器获取请求，上游服务器已关闭。 | 使用退避策略进行查询请求或联系技术支持。 |

使用云端转码响应状态码进行问题排查时，你需要了解如下注意事项：

- 如果请求失败，不要对响应 Body 里的 `message` 字段的内容做任何逻辑处理，建议主要对状态码做逻辑处理。
- 如果以上表格中的排查方法并未解决问题，请务必在日志中打印出响应 Header 中的 `X-Request-ID` 和 `X-Resource-ID` 字段值，并请[联系技术支持](https://ticket.shengwang.cn/)。
- 收到 `404` 的状态码后，如果 [`Create`](/zh-CN/api-reference/api-ref/cloud-transcoding/create) 请求已返回成功且没有主动调用 [`Delete`](/zh-CN/api-reference/api-ref/cloud-transcoding/destroy) 方法，或者 transcoder 的空闲状态超过请求参数中的 `idleTimeout` 字段，建议采取退避算法（例如间隔 5 秒、10 秒、15 秒）调用 `Query` 方法进行确认。
- 收到 `5XX` 的响应状态码后，一般是服务端在响应的过程中出现了问题，建议操作如下：
    - 使用退避策略进行查询请求：例如间隔 5 秒、10 秒、15 秒进行 `Query` 请求，查询服务状态。
    - 联系技术支持。

## 观众端多码率 [#观众端多码率]

在调用 RESTful API 过程中，你可能收到如下 HTTP 响应状态码：

- 如果 HTTP 状态码为 2XX，则请求成功。

- 如果 HTTP 状态码不为 2XX，则请求失败。

例如，请求失败时，你可能收到如下响应：

```json
# 400 Bad Request
# 可能没有 status 或 data
{
  "status": "string",
  "data": {
    ...
  },
  "message": "string"
}
```

下表展示使用观众端多码率服务发起请求时，你可能会收到的所有响应状态码、对应的含义以及建议措施：

| 状态码 | 含义 | 建议措施 |
| --------- | --- | ------- |
| `200 OK`     | 操作成功。 | 无需排查。 |
| `400 Bad Request` | 请求无效。 | 检查请求参数是否合法。 |
| `401 Unauthorized` | 鉴权无效。 | 检查用于 HTTP 认证的 `Authorization` 字段是否正确。详见[实现 HTTP 鉴权](/zh-CN/realtime-media/transcoding/build/http-auth)。 |
| `404 Not Found` | 请求的资源未找到。 | 检查 `appid` 或者 `codecId` 字段是否正确。 |
| `415 Unsupported Media Type` | 不支持的媒体类型。 | 检查请求 Header 中的 `Content-Type` 字段是否设为 `application/json`。 |
| `429 Too Many Requests` | 请求过于频繁。 | 等待一段时间后再重试。 |
| `500 Internal Server Error` | 服务器内部错误。 | 尝试重试几次。 |

:::info[信息]
如果以上排查方法并未解决问题，请务必在日志中打印出响应 Header 中的 `X-Request-ID` 和 `X-Resource-ID` 字段值，并请[联系技术支持](https://ticket.shengwang.cn/)。
:::
