公共参数分为公共请求头和公共查询参数。

公共请求头

所有HTTP请求中,都包含如下公共请求头(HTTP Header):
名称 类型 是否必需 描述
Accept String 接受的返回类型,目前只支持JSON:application/json
Content-Type String 当前请求body的数据类型,目前只支持JSON:application/json
Content-MD5 String 根据请求body计算所得,算法如下:对body做md5,然后做base64编码。
Date String GMT日期格式,例如:Tue, 17 Jan 2017 10:16:36 GMT
x-acs-version String 内容安全接口版本,当前版本为:2018-05-09
x-acs-signature-nonce String 随机字符串,用来避免回放攻击。
x-acs-signature-version String 签名版本,目前取值:1.0
x-acs-signature-method String 签名方法,目前只支持:HMAC-SHA1
Authorization String 认证方式,取值格式为:"acs" + " " + AccessKeyId + ":" + signature

其中,AccessKeyId从阿里云控制台申请获得,signature为请求签名。签名算法参见签名机制

公共查询参数

所有HTTP请求中,都包含如下公共查询(Query)参数:
名称 类型 是否必需 描述
clientInfo String 客户端信息,由ClientInfo结构体JSON序列化所得。包括umid/imei等信息,具体结构描述见ClientInfo
表 1. ClientInfo
名称 类型 是否必需 描述
sdkVersion String SDK版本,通过SDK调用时,需提供该字段。
cfgVersion String 配置信息版本,通过SDK调用时,需提供该字段。
userType String 用户账号类型,取值为:
  • taobao
  • others
userId String 用户ID,唯一标识一个用户。
userNick String 用户昵称。
avatar String 用户头像。
imei String 硬件设备码。
imsi String 运营商设备码。
umid String 设备指纹。
ip String 该IP应该为公网IP。如果请求中不填写,服务端会尝试从链接或者从HTTP头中获取。如果请求是从设备端发起的,该字段通常不填写;如果是从后台发起的,该IP为用户的login IP或者设备的公网IP。
os String 设备的操作系统,如:Android 6.0
channel String 渠道号。
hostAppName String 宿主应用名称。
hostPackage String 宿主应用包名。
hostVersion String 宿主应用版本。

请求示例

POST /green/image/scan?clientInfo=%7b%22userId%22%3a%22120234234%22%2c%22userNick%22%3a%22Mike%22%2c%22userType%22%3a%22others%22%7d HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-MD5: C+5Y0crpO4sYgC2DNjycug==
Date: Tue, 15 May 2018 10:16:36 GMT
x-acs-version: 2018-05-09
x-acs-signature-nonce: adfkjfaHKslkjf
x-acs-signature-version: 1.0
x-acs-signature-method: HMAC-SHA1
Authorization: acs qwaQ9K4PaGiMtWyk:adFdL0FFO4sGcDbDNjRtso==
Host: green.cn-shanghai.aliyuncs.com/
Content-Length: 191
{
"scenes": ["porn"],
"tasks": [
{
"dataId": "test2NInmO$tAON6qYUrtCRgLo-1mwxdi",
"url": "https://img.alicdn.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.png"
}
]
}
其中,
  • POST指定了请求方法。
  • /green/image/scan是请求路径。
  • clientInfo=%7b%22userId%22%3a%22120234234%22%2c%22userNick%22%3a%22Mike%22%2c%22userType%22%3a%22others%22%7d为编码后的公共查询参数。
  • 此后是http头,其中AcceptAuthorization是签名时要用到的公共请求头。
  • {}内的内容是JSON格式的请求body。