如何使用fiddler2对主流物联网云平台yeelink、乐联进行http分析

本文介绍了如何使用Fiddler2工具对物联网云平台yeelink和乐联进行HTTP分析,重点讲解了yeelink的POST请求格式,包括APIKey、设备ID和传感器ID的使用,以及乐联的Gateway更新传感器数据的JSON格式。通过Fiddler2,可以构造并发送HTTP请求,验证传感器数值的上传和更新。
摘要由CSDN通过智能技术生成

我接触物联网还是在一年多之前,刚开始搞的时候用的是乐鑫的ESP8266,好处在于除了SDK编程还支持LUA编程,当然由于lua解释器占用了很大的内存,导致内存不足。不过官方现在已经优化了30k左右。据爆料新版本年底可能会出更大内存,蓝牙+WIFI SOC共存。好了,回归正题,刚开始学习的时候,最好先了解下什么是http协议,还有一些网络部分的基础知识。后来在应用主流物联网云平台yeelink的时候,官方给的那些api都是通过curl来实现的,然而8266芯片必须通过tcp连接对应的80端口发送http内容才能上传指定的数据内容和GET相关的开关内容。一旦我们获取到所匹配的这些代码,只要在8266或者arduino中做好字符串拼接即可上传成功。接下来我将使用fiddler2来进行模拟http请求进行请求实现。

注意:yeelink和乐联在request内容上是有区别的。yeelink在post时需要如下的格式

POST /v1.0/device/<device_id>/sensor/<sensor_id>/datapoints

U-ApiKey:xxxxxxxxxxxxx

在请求头中要加入对应的apikey,主要是用来识别这个是你自己。POST需要知道你的设备id和传感器id,一个设备可以对应多个传感器

请求内容:json格式

  • {
      "timestamp":"2012-03-15T16:13:14",
      "value":294.34
    }
  • 采用json格式,其中timestamp可以不用写,可以只写value,这样数据提交时间就是当前服务器日期。
  • 根据官方api,还给出一次上传多个时间点数据 http://www.yeelink.net/developer/apidoc/11
  • [
      {"timestamp": "2012-06-15T14:00:00", "value":315.01},
      {"timestamp": "2012-06-15T14:00:10", "value":316.23},
      {"timestamp": "2012-06-15T14:00:20", "value":317.26},
      {"timestamp": "2012-06-15T14:00:30", "value":318},
      {"timestamp": "2012-06-15T14:00:40", "value":317}
    ]
  • 其他型的传感器可以参考官方api。
  • 我们可以看到,yeelink主要是针对单一传感器进行多时间点的数据上传,接下来分析乐联,我们会发现,乐联是使用一个gateway,而json内容则可以是一个网关下任意的传感器。填写内容为:
  • POST http://www.lewei50.com/api/v1/gateway/updatesensors/{网关标识}
  • userkey: 225fa1b4e7db4abxxxxxxx
    
  • request content:
  • [    {        "Name":"T1",        "Value":"1"    },    {        "Name":"01H1",        "Value":"96.2"    }]
    其中可以填写多个传感器,上传数据可以按照如上格式即可。乐联的方便之处在于,你可以一次给多个传感器添加数值。更多的可以参考官方api:http://www.lewei50.com/dev/content/api?sk=70
  • 接下来我们将根据api的内容组合用fiddler2找到我们应该上传的内容。
  • 首先下载安装fiddler2,运行
  • 
    
  • 点击右侧的请求构造
  • 
    
  • 选择yeelink,我们使用POST方式提交,具体填写如下图
  • 
    
  • json写在请求体中,apikey写在请求头中,点击execute,此时会在左侧出现一个post
  • 选中左侧的这个,右侧按我上图选择嗅探-RAW,这时会出现
  • 
    
  • 传感器数值的变化
  • 
    
  • 这一堆http请求就是我们连接指定端口之后要发送的内容,其中content-length长度值是要计算请求体的数据长度,post具体的device id和sensor id 要换成自己的。接下来我用网络调试助手测试下。www.yeelink.net  :42.96.164.52
  • 
    
  • 点击连接,发送,会出现:
  • 
    
  • 回到客户端看传感器数值(需要刷新
  • 
    
  • 证明是可行的。乐联请大家自行测试,我测试完成的头如下
  • POST /api/V1/gateway/UpdateSensors/01 HTTP/1.1
    userkey: 225fa1b4e7db4abxxxxxxxxxxxxxxxx
    Host: www.lewei50.com
    Content-Length: 121
    
    
    [
        {
            "Name":"T1",
            "Value":"68"
        },
        {
            "Name":"H1",
            "Value":"95"
        }
    ]
  • ESP8266 lua上传yeelink 例程,大家也可以参考。上传的数据可以自行修改。http://bbs.nodemcu.com/t/www-yeelink-net/108
  • 其他的云平台,其模式都和此差不多,大家可以按照这种方法自行测试。本文适合初学者,老手勿喷。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值