1.前言
curl是利用URL语法在命令行方式下工作的开源文件传输工具(来自百度百科)。cURL 是一种简单有效的工具,可以使用cURL工具进行WEB相关的调试开发工具,相对于Yeelink这样的云平台,也可以使用cURL工具查询或推送数据。 在学习使用cURL工具之前,需要有相关HTTP通信的知识。
HTTP协议建立在TCP协议之上,包括URL和HTML等内容。就HTTP协议本身而言可分为:起始行、报文首都、空行和报文主体等部分。
【起始行】
起始行包括HTTP方法、URL和HTTP版本等内容。HTTP方法包括GET和POST等,在cURL语法中可使用 --request GET或--request POST。
【报文首部】
报文首部包括若干属性和属性值。在使用Yeelink平台时必须制定APIKey。在cURL语法中可以这样写:--header “ U-ApiKey: [XXXXYYYYZZZZ] ”
【空行】
空行位于报文首部和报文主体之间。
【报文负载】
对于一个浏览器来说报文负载便是HTML文本,但是对于Yeelink平台来说报文负载是一个JSON数据包,JSON数据包可包括传感器和GPS坐标 等。在cURL语法中可写成:--data "{\"value\",12.3}"。请注意在此处“需要写成转义字符的形式\"。
2.获得开关结果
curl --request GET --header "U-ApiKey: [XXXXYYYYZZZZ] " ^
http://api.yeelink.net/v1.0/device/1949/sensor/2511/datapoints
图1 获得开关结果 cURL
图2 获得开关结果 Http Analyzer
3.推送传感器数据
curl -i --request POST --data "{\"value\":25}" --header "U-ApiKey: [XXXXYYYYZZZZ] ^
http://api.yeelink.net/v1.0/device/1949/sensor/2510/datapoints
图3 推送传感器数据 cURL
图4 推送传感器数据 Http Analyzer
4.推送GPS数据
lng代表经度,lat代表纬度和speed代表对地速度。
curl -i --request POST --data "{ \"value\": {\"lng\":120.2913397511,\"lat\":31.5404543824,\"speed\":12.3} }" ^
--header "U-ApiKey: [XXXXYYYYZZZZ] " http://api.yeelink.net/v1.0/device/1949/sensor/9980/datapoints
curl -i --request POST --data "{ \"value\": {\"lng\":120.3734,\"lat\":31.4895,\"speed\":12.3} }" ^
--header "U-ApiKey: [XXXXYYYYZZZZ] " http://api.yeelink.net/v1.0/device/1949/sensor/9980/datapoints
图5 推送GPS数据 cURL
图6 推送GPS数据 Http Analyzer
【小技巧】windows中的控制台使用中 ^ 符号具有续行作用。
【小技巧】curl -i 选项可以显示http响应的报文首部,对于推送传感器或GPS数据有帮助。
5.总结
cURL是一种灵活有效的调试工具。