语种识别

识别文本语种,返回语言代码和原文。

GET / POSThttps://translate.ilivedata.com/api/v1/detect

接入前,请在云上曲率官网注册账号、创建企业,并在控制台选择「实时文本翻译」服务创建应用,获取项目编号和服务密钥。如需开通更多服务,可在控制台「总览」页面操作。

请求参数

请求头

Header 值 说明
Accept application/json;charset=UTF-8 响应格式
Authorization — 签名值,计算方式见下文「请求签名」

请求字段

参数 类型 必需 说明
q String 必需 待识别的原文文本, 文本为不超过 1024 个字符的 UTF-8 编码字符串
appId String 必需 项目或应用的唯一标识符。在官网注册账号及公司,并在控制台创建实时翻译项目后,即可得到项目的 appId
timeStamp String 必需 请求发起时的 UTC 时间,采用 W3C 格式,例如 2026-10-12T02:30:00Z。实际请求需使用当前时间。

请求示例

以下为 GET 请求示例,appId、timeStamp 和签名需替换为实际值。

GET /api/v1/detect?q=hello%20world&appId=1234&timeStamp=2026-10-12T02%3A30%3A00Z HTTP/1.1
Host: translate.ilivedata.com
Accept: application/json;charset=UTF-8
Authorization: <计算得到的签名>

请求签名

使用项目的 secretKey 计算签名,将结果放入请求头 Authorization。签名不一致或项目无权限时返回 HTTP 401。

构造参数字符串

  1. 按参数名称排序。
  2. 按 RFC 3986 对参数名和值进行 URL 编码:字母、数字、-、_、.、~ 保持不变,其他字符使用大写十六进制百分号编码;UTF-8 多字节字符逐字节编码。
  3. 使用 = 连接参数名和值(空值也保留 =),使用 & 连接各参数,得到 CanonicalizedQueryString。

使用表单 URL 编码库时,将编码结果中的 + 替换为 %20、* 替换为 %2A、%7E 替换为 ~。空格必须编码为 %20。

构造签名字符串

StringToSign = HTTPMethod + "\n" +
               HostHeaderInLowercase + "\n" +
               HTTPRequestURI + "\n" +
               CanonicalizedQueryString
签名参数 值
HTTPMethod 实际请求方法:GET 或 POST
HostHeaderInLowercase translate.ilivedata.com
HTTPRequestURI /api/v1/detect

HTTPRequestURI 不包含查询参数。

计算 Authorization

以 secretKey 为密钥,使用 HMAC-SHA256 对 StringToSign 计算摘要,再将摘要进行 Base64 编码,作为 Authorization 请求头的值。

签名示例

以上 GET 请求排序并编码后的参数字符串:

appId=1234&q=hello%20world&timeStamp=2026-10-12T02%3A30%3A00Z

对应的 StringToSign 如下,各行之间使用换行符 \n:

GET
translate.ilivedata.com
/api/v1/detect
appId=1234&q=hello%20world&timeStamp=2026-10-12T02%3A30%3A00Z

使用实际项目密钥计算签名后,填入 Authorization。实际请求需使用当前 UTC 时间,并据此重新计算签名。

HTTP 响应

Content-Type: application/json;charset=UTF-8

响应字段

字段 类型 说明
errorCode Number 错误码,0 表示成功。
errorMessage String 错误消息,失败时返回。
language String 识别出的语言代码。
text String 原文文本。

成功示例(HTTP 200)

{
  "errorCode": 0,
  "language": "en",
  "text": "Hello World!"
}

失败示例(HTTP 404)

{
  "errorCode": 1006,
  "errorMessage": "Not Found"
}

缺少参数(HTTP 400)

{
  "errorCode": 2000,
  "errorMessage": "Missing Parameter"
}