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是一种灵活有效的调试工具。

curl命令访问域名的更多相关文章

  1. openshift 使用curl命令访问apiserver

    openshift版本:openshift v3.6.173.0.5 使用oc(同kubectl)命令访问apiserver资源的时候,会使用到/root/.kube/config文件中使用的配置. ...

  2. ACME[free https] Linux中使用curl命令访问https站点4种常见错误和解决方法

    free https certification generator https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E 每一种客户 ...

  3. 利用curl命令访问Kubernetes API server

    kubectl 通过访问 Kubernetes API 来执行命令.我们也可以通过对应的TLS key, 使用curl 或是 golang client做同样的事. API 请求必须使用 JSON 格 ...

  4. 如何使用curl命令指定ip访问url

    有时我们需要测试一个url,但域名并没解析,这时为了一个简单的测试而写host或去做域名解析,显然这并不高效,而有些域名甚至是正式的域名,因此我们可有使用curl命令进行测试 方法一 curl url ...

  5. 【转】命令行浏览器 curl 命令详解,Linux中访问url地址

    CURL --- 命令行浏览器 这东西现在已经是苹果机上内置的命令行工具之一了,可见其魅力之一斑 1)二话不说,先从这里开始吧! curl http://www.yahoo.com 回车之后,www. ...

  6. 如何让 curl 命令通过代理访问

    如何让 curl 命令通过代理访问 Linux.中国 - 开源中文社区 2018-01-18 8909 阅读 技术 我的系统管理员给我提供了如下代理信息: IP: 202.54.1.1 Port: 3 ...

  7. curl命令行使用

    curl 命令使用   原文地址:http://blog.sina.com.cn/s/blog_4b9eab320100slyw.html 可以看作命令行浏览器 1.开启gzip请求curl -I h ...

  8. curl命令常见用法汇总 good

    curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. curl是一个强大的命令行工具,它可以通过网络将信息传递给服务器或者从服 ...

  9. curl命令使用大全

    curl命令使用大全 可以看作命令行浏览器 1.开启gzip请求curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte 2.监控 ...

随机推荐

  1. [转载]C# winform登陆框验证码的实现

    验证码技术已愈来愈成熟,从最初的数字.字母.字符.汉字已经到目前的语言,其应用也甚广,之前大多数只有在网站上可以看到,现在在一些客户端软件也经常可见(比如证券相关软件).之前做的一个基于 C# 客户端 ...

  2. [设计模式] 10 外观模式 facade

    外观模式应该是用的很多的一种模式,特别是当一个系统很复杂时,系统提供给客户的是一个简单的对外接口,而把里面复杂的结构都封装了起来.客户只需使用这些简单接口就能使用这个系统,而不需要关注内部复杂的结构. ...

  3. android.os.DeadObjectException memory near r0: 异常处理 Consumer closed input channel or an error occurred. events=0x9

    原地址:http://www.cnblogs.com/wanqieddy/p/3495338.html android.os.DeadObjectException memory near r0: 异 ...

  4. linux上部署应用

    1.编写traffic.sh 引入相关的jar包及java环境路径 2.crontab -e 加入: */10 * * * * cd /opt/sys/traffic_version/bin & ...

  5. POJ 3259 Wormholes(SPFA)

    http://poj.org/problem?id=3259 题意 : 农夫约翰农场里发现了很多虫洞,他是个超级冒险迷,想利用虫洞回到过去,看再回来的时候能不能看到没有离开之前的自己,农场里有N块地, ...

  6. PowerDesigner 逆向工程 从SQL文件转换成PDM 从PDM转成CDM

    从SQL文件逆向工程到PDM: ①选择file -> Reverse Engineer - > Database ②在General选项卡中选择MySQL数据库,点击确定. ③using ...

  7. [主席树]HDOJ3874 Necklace

    题意:n个数 m个询问 询问的是[l, r]区间内不同的数的和 没有修改,静态的主席树即可 与 SPOJ QUERY 一样 将重复的元素建树即可 注意范围:$N \le  50000$ 每个值不超过1 ...

  8. 利用纯真ip地址库 查询 ip所属地

    1. 首先下周数据源,选择是纯真数据库:http://www.cz88.net/ 2. 安装后,打开软件,将数据导出为txt格式. 3. 处理数据,参照网上的文章(http://www.jb51.ne ...

  9. CreateTwoArray

    public class CreateTwoArray{ public static void main(String []args){ int[][]arr=new int [2][3]; Syst ...

  10. 模拟在table中移动鼠标,高亮显示鼠标所在行

    在项目中有这样一个需求,在table中移动鼠标时,鼠标所在行高亮显示,其他行正常显示,为此做了一个模拟. 具体代码如下: <!DOCTYPE html> <html xmlns=&q ...