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是一種靈活有效的調試工具。