HTTP协议接入

HTTP简介

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议。它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。平台支持http及https两种接入方式。

HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。

协议特点

  • 支持HTTP/HTTPS协议,仅支持上行报文和获取缓存的下发报文(最多10条)。
  • HTTP为短连接会话,无法实现长连接建链。维持1小时内会话(token有效时间为1小时)。
  • 报文类型:接入鉴权报文,上行数据报文,获取下发数据报文。

操作前提

1.已创建好产品和设备(细节参考产品管理、设备管理)
2.定义好产品模型(细节参考模型管理)

产品管理设备管理模型管理

操作步骤

支持HTTP协议传输的设备按照下列支持的指令请求方式进行http访问即可。

下图是使用postman模拟http设备进行设备上线和主动拉取云端命令操作。

  • 设备上线

  • 主动拉取云端命令

指令详情

指令列表

指令功能 发送形式 详情
设备上线 D => C /device/auth
设备上报数据 D => C /device/topic
设备主动拉取云端下发命令 D => C /device/topic

设备上线

D => C

POST /device/auth HTTP/1.1

Content-Type:application/json
Accept:application/json

{
    "pk":"f264aed445b745aea0ea8f2c4880b090",
    "devId":"820842994100009",
    "random":"8",
    "hashMethod":"HmacMD5",
    "sign":"f3bea7ab22f3a9291cb9494ca0951f86"
}
参数 必填 类型 说明
pk string 子设备节点 productKey。
devId string 子设备节点 devId。
random string 设备加密校验,随机字符串,可以使用当前时间毫秒数的字符串,也可以使用uuid生成的,也可以是 math.random()等等。
hashMethod string hash 方法,选填 HmacMD5HmacSHA1HmacSHA256 或者 HmacSHA512
sign string 要注册的设备的产品认证签名。

其中只有当设备需要登录安全校验时才需要填写random、hashMethod和sign。

sign的计算方式可以参考密码计算方式中对password的计算。

【注意】发起"设备上线"请求后,云端会对请求回复。即下述【云端回复设备上线】。

云端回复设备上线

C => D

HTTP/1.1 200 OK

{
    "code": 0,
    "desc": "success",
    "data": {
        "token": "68c75412cdc346178c5fb1fc0cd42237"
    }
}
参数 必填 类型 说明
code uint 如果没有错误回复 0。
desc string 错误说明。
token string 设备token,后续所有操作都需要携带,如果token失效后需要再次登录获取(默认有效时间为1个小时)。

设备上报数据

D => C

POST /device/topic HTTP/1.1

Content-Type:application/json
Accept:application/json
token:{{token}}

{
  "cmd": "up",
  "params":{
    "data":"updata1"
  }
}
参数 必填 类型 说明
token string 登录时云端返回的token值。
cmd string 标识符。
params object 参数,如果只有指令,没有参数允许不填;否则应该填写该指令下的参数标识符。 可以少不能多,值做强较验(类型,长度等必须符合协议规定)。

【注意】发起"设备上报数据"请求后,云端会对请求回复。即下述【云端回复设备上报数据】。

云端回复设备上报数据

C => D

HTTP/1.1 200 OK

{
    "code": 0,
    "desc": "success"
}
参数 必填 类型 说明
code uint 如果没有错误回复 0。
desc string 错误说明。

设备主动拉取云端下发命令

D => C

GET /device/topic HTTP/1.1

Content-Type:application/json
Accept:application/json
token:{{token}}
参数 必填 类型 说明
token string 登录时云端返回的token值。

【注意】发起"设备主动拉取云端下发命令"请求后,云端会对请求回复。即下述【云端回复信息】。

云端回复信息

HTTP/1.1 200 OK

{
    "code": 0,
    "desc": "success",
    "data": [
        {
            "cmd": "down",
            "params": {
                "data": "1"
            }
        },
        {
            "cmd": "down",
            "params": {
                "data": "1"
            }
        }
    ]
}
参数 必填 类型 说明
code uint 如果没有错误回复 0。
desc string 错误说明。
data object 云端下发命令。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""