http报文解析与测试

转:https://open.iot.10086.cn/bbs/thread-1041-1-1.html

OneNET提供了丰富的API接口,API的典型应用场景为业务应用第三方平台)与平台进行数据交互/资源管理时使用
如下图所示:


第三方平台在调用API的时候,实际进行两个步骤
Step1: 与OneNET HTTP服务器建立TCP连接;
Step2: 按照API文档中包格式说明,发送满足改格式的HTTP报文。

实际上,任何一个TCP client(例如:pc的TCP调试软件,wifi模块,GPRS模块等)均可以完成上述步骤。
也就是说,一般的终端,也可以通过上述两个步骤来使用API接口;API可以作为一种特殊的设备接入协议存在,而不仅仅限于第三方平台的交互工具。

需要注意的是,API可以实现的功能主要为:
1、 数据点的上传与查询
2、 平台资源的管理,包括 设备、数据流、触发器等
3、 发送命令给某一知道设备ID的设备
注意:并不具有接收平台下发命令的功能

像前面所提到的那样,HTTP API 并非是为设备接入而设计的,所以在功能上可能会与设备侧的需求有所出入,用户在进行协议选择的时候,请充分考虑这一点。


API提供的强大的功能,而且在很多协议使用的时候,也经常会涉及到API的使用。
接下来我们将通过2个例子向大家详细介绍一下API的使用方法,希望能帮助大家理解如下这些问题:
1、 URL如何填写?
2、 HTTP头部和URL参数如何填写?
3、 设备端如何调用API,如何组包?


例1:设备注册
本例中,我们将使用 fiddler HTTP调试工具调用设备注册的API(在批量设备接入的时候会经常用到)


本API中涉及到,URL,URL参数,HTTP内容的使用方法:
step1: 打开fiddler工具,填写相关参数,如下图所示:


step2: 点击execute,点击左侧的执行结果,查看API调用结果


step3: 选择顶部的查看方式按键,选择raw即可以看到完整的发送与接收的报文


可以看到,这里发送的实际报文的格式为:
 

  1. POST http://api.heclouds.com/register_de?register_code=cba89peVvQ7p28sD HTTP/1.1
  2. Host: api.heclouds.com
  3. Con**-Length: 44
  4.  
  5. {"sn": "20160909001","title": "myedpdevice"}

复制代码

此格式也就是我们使用TCP客户端需要发送的完整HTTP报文格式。

注意:
1、 Host: api.heclouds.com
      Con**-Length: 44
      此两行为fiddler工具自动补充的,Con**-Length: 44其中的44为HTTP内容({"sn": "20160909001","title": "myedpdevice"})整个字段的长度
2、 Con**-Length: 44其后有两个回车换行符


我们使用TCP测试工具进行确认: TCPUDPDebug_Setup_1.032.rar (1020.93 KB, 下载次数: 473)
step1: 与 api.heclouds.com :80 建立连接



step2: 将fiddler中得到的代码,复制到发送框中,点击发送





这里可以看到,通过组织完整的HTTP报文,可以在一个简单的TCP client上,通过发送报文给OneNET HTTP服务器(api.heclouds.com:80)来完成API的调用,而fiddler 工具可以帮助我们快速的验证API,以及确定正确的HTTP报文的格式。
本例中涉及到的API详解请参考 设备批量创建说明

例2: 数据点查询
本例中,我们将利用数据点查询API来完善说明部分API的使用
API格式如下:


本API中涉及到,URL,URL参数,HTTP头部的使用方法:
step1: 同上例,首先在fiddler中填写相关参数


step2: 点击execute,点击左侧的执行结果,查看API调用结果



其完整的HTTP报文为:
 

  1. GET http://api.heclouds.com/devices/3420352/datap**?datastream_id=loc&limit=10 HTTP/1.1
  2. api-key: LOTJps=fkcUUgxaQX37uFjmkOis=
  3. Host: api.heclouds.com
  4.  

复制代码

注意,Host: api.heclouds.com其后有两个回车换行符


按照例1中的方法,可以在TCP client中发送该报文,得到的结果为:



本文演示了如何在一个TCP client上来完成API的调用,在fiddler工具的辅助下,我们可以快速确定HTTP报文的形式,通过
Step1: 与OneNET HTTP服务器建立TCP连接;
Step2: 按照API文档中包格式说明,发送满足改格式的HTTP报文。
这两个步骤,可以在任何设备上使用API。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值