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}"。請注意在此處“需要寫成轉義字元的形式\"。
curl --request GET --header "U-ApiKey: [XXXXYYYYZZZZ] " ^
http://api.yeelink.net/v1.0/device/1949/sensor/2511/datapoints
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TVE1EeFpnT0s2VZJnVIVmdRhlW1VTaitmTzkVdjJjYzpkMMZ3bENGMShUYvwFd4VGdvwlMvw1ayFWbyVGdhd3P4YTO2MzMyYTM4AjMxMTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)
圖1 獲得開關結果 cURL
圖2 獲得開關結果 Http Analyzer
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
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} }" ^
圖5 推送GPS資料 cURL
圖6 推送GPS資料 Http Analyzer
【小技巧】windows中的控制台使用中 ^ 符号具有續行作用。
【小技巧】curl -i 選項可以顯示http響應的封包首部,對于推送傳感器或GPS資料有幫助。
cURL是一種靈活有效的調試工具。