HTTP协议接入物联网平台(Getman模拟)

作者:三烽

概述


阿里云物联网平台支持设备使用HTTP接入,目前仅支持HTTPS协议。本文将使用Getman模拟设备,进行接入测试。
官方文档:HTTP连接通信


说明与限制

  • HTTP通信方式适合单纯的数据上报的场景。
  • HTTP服务器地址为:https://iot-as-http.cn-shanghai.aliyuncs.com
  • 目前,仅中国(上海)地域支持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/ HTTP协议接入物联网平台(Getman模拟)HTTP协议接入物联网平台(Getman模拟)HTTP协议接入物联网平台(Getman模拟)HTTP协议接入物联网平台(Getman模拟)HTTP协议接入物联网平台(Getman模拟)。其中,变量{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

    HTTP协议接入物联网平台(Getman模拟)
  • body

    HTTP协议接入物联网平台(Getman模拟)

sign可以使用工具快速计算得到,请参考此处password的计算

  • 返回结果

    HTTP协议接入物联网平台(Getman模拟)

上报数据

  • 使用自定义topic

    HTTP协议接入物联网平台(Getman模拟)
  • URL和Header

    HTTP协议接入物联网平台(Getman模拟)
  • body

    HTTP协议接入物联网平台(Getman模拟)
  • 返回结果

    HTTP协议接入物联网平台(Getman模拟)
上一篇:Coap协议接入物联网平台(java实现)


下一篇:基于开源JAVA MQTT Client连接阿里云IoT