利用串口服务器HTTP客户端模式上报或者获取云端数据,此功能基于HTTP/1.1协议实现,不能通过上次讲解天气API时使用的GET请求报文实现(基于HTTP/1.0)。
一.简介
下面通过GET方式请求百度主页说明HTTP/1.1报文的组成;
请求方式+URL+数据+HTTP/1.1+换行符+包头+换行符+换行符+换行符,可以看出GET请求HTTP数据包在URL的后面协议标识的前面,也就是从“Accept”到“sec-ch-ua-platform”都是包头数据;
包头中数据用于标识请求信息并非必须具有,比如可以使用下面这种请求方式获取百度搜索的主页:
GET http://www.baidu.com// HTTP/1.1
Host www.baidu.com
二.操作步骤
1.即使不带任何包头数据也可以实现请求“百度”,并收到<HTML>数据返回,如图所示:
2.配置串口服务器参数,实现HTTP/1.1请求“百度”主页,如下图所示:
3.使用串口调试助手发送“/”,就可以收到HTTP服务器返回的数据,通过对HTML(超文本标记语言)解析就可以得到“百度”的主页;
4.之后请求OneNET修改数据都将基于HTTP/1.1协议实现。
1.首先注册并登录OneNET账号,选择“产品服务”下的MQTT物联网套件;
2.选择“MQTT物联网套件”的老版本“多协议接入”,新版的MQTT也是原生支持HTTP/1.1协议接入,使用方法与接下来使用的“HTTP接入”相同,有兴趣可以自行阅读OneNET使用说明;
3.在“HTTP接入”产品下添加产品,参数可以随意填写不影响,建议除产品名称外其余参数和小编保持一致;
4.在“ebyte”产品目录下添加模拟电表设备“DTSU666_01”,设备编号可以使用生产编号,这里使用模拟设备因此产品编号模拟为“S20220516001”,点击“添加”;
5.进入设备详情界面查询设备ID、API地址、APIKEY,第一次添加设备不具有APIKEY需要添加,手动添加明文密钥,服务器会自动对明文进行加密,之后使用都是使用加密后的密钥;
6.在数据模板中添加“Ua”(A相相电压)、“Ia”(A相电流),如图所示:
1.可以在OneNET设备平台“文档中心”查看API接口使用说明;
2.目前NA111系列串口服务器与以太网网关仅支持POST与GET两种请求方式,而HTTP/1.1协议共支持9种请求方式(GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH),其余请求方式只能在TCP客户端模式结合短连接实现,而OneNET-HTTP服务器在小编的印象中仅支持(GET、POST、PUT、DELETE)四种方式,先对“查询数据流”和“上传数据点”两个常用API接口进行说明其余API接口可以参考实现;
1.配置串口服务器,使用动态IP、随机端口并保证设备能正常接入互联网,配置目标地址(api.heclouds.com),端口(80),建议打开包头返回方便观察服务器反馈状态,若不返回包头在包头错误,请求不合法时无法找到错误原因,返回包头则可以通过HTTP状态码判断请求状态;
分类 | 分类描述 |
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
2.使能短连接模式配置为5s(非必要但建议开启减轻服务器压力);
3.配置URL为/devices/ devices_id/datapoints;
配置包头为api-key:df0JBIwvwcxI15eeyXS52bArshE=\r\nHost:api.heclouds.com;
此处串口服务器在POST模式下隐含了Content-Length:包头信息,无需将此包头配置到包头数据中,上位机和网页配置的包头输入框支持换行符的识别,不能使用转义字符“\r\n”输入,点击“保存配置”,再点击“重启设备”;
4.根据手册示例组包实际请求数据并使用JSON格式化工具校验数据,如图所示:
5.通过串口助手发送上报数据,并使用平台查询上报数据是否成功:
6.演示关闭包头返回后的接收:
1.修改设备请求方式与URL路径其余配置与POST时相同,根据请求示例进行配置如下图所示:
2.根据请求示例可以得到请求数据的组包规则为“datastream_ids=Ua,Ia”,请求效果如下:
1.HTTP是超文本传输协议一般工作在TCP协议上,除了使用HTTP客户端模式还可以使用TCP客户端实现目前不支持的请求方式,比如接下来测试的删除请求,利用DELETE删除刚才测试的DTSU666_01设备;
2.登录平台查询设备,使用“DELETE”请求成功。
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdhanzaichips.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都太阳集团tcy8722电子科技有限公司【版权所有】 蜀ICP备27697263号-3