作者:三烽
概述
阿里云物联网平台支持设备使用HTTP接入,目前仅支持HTTPS协议。本文将使用Getman模拟设备,进行接入测试。
官方文档:HTTP连接通信
说明与限制
- HTTP通信方式适合单纯的数据上报的场景。
- 目前,仅中国(上海)地域支持HTTP通信。
- 只支持HTTPS协议和POST请求方式。
- Topic规范和MQTT的Topic规范一致。使用HTTP协议连接,上报数据请求:https://iot-as-http.cn-shanghai.aliyuncs.com/topic/ ${topic}。其中,Topic变量${topic}的值可以与MQTT连接通信的Topic 相复用。不支持以?query_String=xxx格式传参。
- 数据上行接口传输的数据大小限制为128 KB。
- 设备认证请求的HTTP header中的Content-Type必须为application/json。
- 数据上报请求的HTTP header中的Content-Type必须为application/octet-stream。
- 设备认证返回的token会在一定周期后失效(目前token有效期是7天),请务必考虑token失效逻辑的处理。
接入流程
认证设备,获取设备的token
- 认证设备请求
POST /auth HTTP/1.1
Host: iot-as-http.cn-shanghai.aliyuncs.com
Content-Type: application/json
body: {"version":"default","clientId":"mylight1000002","signmethod":"hmacsha1","sign":"487014****","productKey":"ZG1E****","deviceName":"NlwaS****","timestamp":"1501668289957"}
- 请求参数说明
参数 | 说明 |
---|---|
Method | 请求方法。支持POST方法。 |
URL | /auth,URL地址,只支持HTTPS。 |
Host | endpoint地址:iot-as-http.cn-shanghai.aliyuncs.com |
Content-Type | 设备发送给物联网平台的上行数据的编码格式。目前只支持 application/json。若使用其他编码格式,会返回参数错误。 |
body | 设备认证信息。JSON数据格式。具体信息,请参见body说明 |
- 返回示例
body:
{
"code": 0,//业务状态码
"message": "success",//业务信息
"info": {
"token": "6944e5bfb92e4d4ea3918d1eda3942f6" //需本地保存
}
}
上报数据,发送数据到某个自定义Topic
- 上报数据请求
POST /topic/${topic} HTTP/1.1
Host: iot-as-http.cn-shanghai.aliyuncs.com
password:${token}
Content-Type: application/octet-stream
body: ${your_data}
- 请求参数说明
参数 | 说明 |
---|---|
Method | 请求方法。支持POST方法。 |
URL | /topic/ 。其中,变量{topic}需替换为数据发往的目标Topic。只支持HTTPS。 |
Host | endpoint地址:iot-as-http.cn-shanghai.aliyuncs.com |
password | 放在Header中的参数,取值为调用设备认证接口auth返回的token值。 |
Content-Type | 设备发送给物联网平台的上行数据的编码格式。目前仅支持application/octet-stream。若使用其他编码格式,会返回参数错误。 |
body | 发往${topic}的数据内容。 |
- 返回示例
body:
{
"code": 0,//业务状态码
"message": "success",//业务信息
"info": {
"messageId": 892687627916247040,
}
}
Getman模拟过程
认证设备
- URL和Header
- body
sign可以使用工具快速计算得到,请参考此处password的计算
- 返回结果
上报数据
- 使用自定义topic
- URL和Header
- body
- 返回结果