请求头和错误返回
更新时间:2024-07-15
请求头
名称 | 类型 | 是否必选 | 参数位置 | 描述 | 示例值 |
---|---|---|---|---|---|
version | String | 是 | header | API接口的版本。取值参考具体业务的接口文档说明 | v2、v3 |
authorization | String | 是 | header | 用于验证请求合法性,格式为:bce-auth-v2/{accessKeyId}/{date}/{region}/{service}/{signedHeaders}/{signature} 1. accessKeyId: 是Access Key ID,请参看获取AK/SK来获取 2. date:签名的UTC日期,格式为yyyymmdd,例如:20150427。 3. region:所请求服务资源所在的区域,小写格式。例如:bj。 4. service:所请求的服务名称,小写格式。例如:bos。 5. signedHeaders:签名算法中涉及到的HTTP头域列表。HTTP头域名字一律要求小写且头域名字之间用分号(;)分隔,如host;range;x-bce-date。列表按照字典序排列。当signedHeaders为空时表示取默认值。 6. signature: 256位签名的十六进制表示,由64个小写字母组成。它由SK(Secret Access Key)和authStringPrefix哈希得到signingKey,再将canonicalRequest以signingKey为key进行哈希摘要生成 具体参考:鉴权认证 |
bce-auth-v1/ffab11fa2b5a4f698d159af2c23f556e/2024-06-06T03:00:20Z/1800/host/3fbe830c1e67389523e2ff09f47ec59c4ed723dcea22018569a3aec968cdfbe6 |
content-Type | String | 是 | header | 指定数据传输的格式(MIME类型)。当前支持: 1. application/json; charset=utf-8 2. multipart/form-data(仅部分接口支持) 3. text/event-stream (仅部分接口支持) |
application/json; charset=utf-8 |
x-bce-date | String | 是 | header | 当服务器收到请求时,需要比较时间戳与当前服务器时间。当两者相差超过30分钟时,返回RequestExpired错误。这样可以在一定程度上防止重放。 表示日期的字符串,符合API规范。具体请参考日期与时间规范 |
2015-04-27T08:23:49Z |
host | String | 是 | header | 接口域名。 | bcc.bj.baidubce.com |
x-bce-content-sha256 | String | 否 | 表示内容部分的SHA256签名的十六进制字符串。这里内容指HTTP Request Payload Body。即Content部分在被HTTP encode之前的原始数据。 |
错误返回
当用户访问 API 出现错误时,会返回给用户相应的错误码和错误信息,便于用户定位问题,并做出适当的处理。请求发生错误时通过 Response Body 返回详细错误信息,遵循如下格式:
参数名 | 类型 | 说明 |
---|---|---|
requestId | String | 导致该错误的requestId |
code | String | 字符串,用于表示具体错误类型 |
message | String | 有关该错误的详细说明 |
公共错误码
错误码 | 错误描述 | HTTP 状态码 | 说明 |
---|---|---|---|
AccessDenied | Access denied. | 403 Forbidden | 无权限访问对应的资源 |
InappropriateJSON | The JSON you provided was well-formed and valid, but not appropriate for this operation. | 400 Bad Request | 请求中的JSON格式正确,但语义上不符合要求。如缺少某个必需项,或者值类型不匹配等。出于兼容性考虑,对于所有无法识别的项应直接忽略,不应该返回这个错误。 |
InternalError | We encountered an internal error. Please try again. | 500 Internal Server Error | 所有未定义的其他错误。在有明确对应的其他类型的错误时(包括通用的和服务自定义的)不应该使用。 |
InvalidAccessKeyId | The Access Key ID you provided does not exist in our records. | 403 Forbidden | Access Key ID不存在 |
InvalidHTTPAuthHeader | The HTTP authorization header is invalid. Consult the service documentation for details. | 400 Bad Request | Authorization头域格式错误 |
InvalidHTTPRequest | There was an error in the body of your HTTP request. | 400 Bad Request | HTTP body格式错误。例如不符合指定的Encoding等 |
InvalidURI | Could not parse the specified URI. | 400 Bad Request | URI形式不正确。例如一些服务定义的关键词不匹配等。对于ID不匹配等问题,应定义更加具体的错误码,例如NoSuchKey。 |
MalformedJSON | The JSON you provided was not well-formed. | 400 Bad Request | JSON格式不合法 |
InvalidVersion | The API version specified was invalid. | 404 Not Found | URI的版本号不合法 |
OptInRequired | A subscription for the service is required. | 403 Forbidden | 没有开通对应的服务 |
PreconditionFailed | The specified If-Match header doesn't match the ETag header. | 412 Precondition Failed | 详见ETag的使用 |
RequestExpired | Request has expired. Timestamp date is XXX. | 400 Bad Request | 请求超时。XXX要改成x-bce-date的值。如果请求中只有Date,则需要将Date转换为本规范指定的格式。 |
IdempotentParameterMismatch | The request uses the same client token as a previous, but non-identical request. | 403 Forbidden | clientToken对应的API参数不一样。 |
SignatureDoesNotMatch | The request signature we calculated does not match the signature you provided. Check your Secret Access Key and signing method. Consult the service documentation for details. | 401 InvalidAuth | Authorization头域中附带的签名和服务端验证不一致 |