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. 使用文本文件(.txt)进行数据存取的技巧总结(相当的经典)

    使用文本文件(.txt)进行数据存取的技巧总结(相当的经典) 使用文本文件(.txt)进行数据存取的技巧总结 由于本帖内容较多,部分转自他人的心得,因此,凡转贴的地方仅用“----转----”标注,原 ...

  2. PHP之list()函数讲解

    定义和用法 list() 函数用数组中的元素为一组变量赋值. 注意,与 array() 类似,list() 实际上是一种语言结构,不是函数. 语法 list(var1,var2...) 参数 描述 v ...

  3. Caffe训练好的网络对图像分类

    对于训练好的Caffe 网络 输入:彩色or灰度图片 做minist 下手写识别分类,不能直接使用,需去除均值图像,同时将输入图像像素归一化到0-1直接即可. #include <caffe/c ...

  4. uva 10330 最大流

    拆点  将节点 i 的容量拆成从 i 到 i+n 的边的容量 套用最大流模板 ac #include <cstdio> #include <cstdlib> #include ...

  5. Relearning PHP (2) – php 的浮点数float

    Relearning PHP (2) – php 的浮点数float 暂无评论 php有很多坑,但是并不妨碍他是最好的语言.其他语言对于浮点数处理同样有问题,这应该是个“共有坑”.不信可以用googl ...

  6. 如何监控业务的响应速度?Cloud Insight SDK 实践分享

    一直在说 Cloud Insight 是数据聚合平台,可以用 SDK 和 API 实现业务监控,如今不拿出点实践人们恐怕是不能信服.那今天本文就先简单介绍一下 SDK 可以应用在哪些方面,再举个真实用 ...

  7. Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介绍了普通方式开发spring web mvc web service.接下来看看使用spring b ...

  8. POJ 3125 Printer Queue(队列,水题)

    题意:有多组数据,每组数据给出n,m,n表示需要打印的文件个数,m表示要打印的目标位置(m为0~n-1).    接下来给出n个数,第i个值对应第i-1个位置的优先级大小.    打印规则如下:    ...

  9. java001-Helloworld

    public class test05 { public static void main(String[] args) { System.out.println("Hello World! ...

  10. PhotoSwipe简介(PhotoSwipe是一个适合在触摸屏手机上使用的相册展示包)

    官方介绍PhotoSwipe 是专为移动触摸设备设计的相册/画廊.兼容所有iPhone.iPad.黑莓6+,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产品 ...