利用串口服務(wù)器HTTP客戶端模式上報(bào)或者獲取云端數(shù)據(jù),此功能基于HTTP/1.1協(xié)議實(shí)現(xiàn),不能通過上次講解天氣API時(shí)使用的GET請(qǐng)求報(bào)文實(shí)現(xiàn)(基于HTTP/1.0)。
一.簡(jiǎn)介
下面通過GET方式請(qǐng)求百度主頁說明HTTP/1.1報(bào)文的組成;
請(qǐng)求方式+URL+數(shù)據(jù)+HTTP/1.1+換行符+包頭+換行符+換行符+換行符,可以看出GET請(qǐng)求HTTP數(shù)據(jù)包在URL的后面協(xié)議標(biāo)識(shí)的前面,也就是從“Accept”到“sec-ch-ua-platform”都是包頭數(shù)據(jù);
包頭中數(shù)據(jù)用于標(biāo)識(shí)請(qǐng)求信息并非必須具有,比如可以使用下面這種請(qǐng)求方式獲取百度搜索的主頁:
GET https://www.baidu.com// HTTP/1.1
Host www.baidu.com
二.操作步驟
1.即使不帶任何包頭數(shù)據(jù)也可以實(shí)現(xiàn)請(qǐng)求“百度”,并收到<HTML>數(shù)據(jù)返回,如圖所示:
2.配置串口服務(wù)器參數(shù),實(shí)現(xiàn)HTTP/1.1請(qǐng)求“百度”主頁,如下圖所示:
3.使用串口調(diào)試助手發(fā)送“/”,就可以收到HTTP服務(wù)器返回的數(shù)據(jù),通過對(duì)HTML(超文本標(biāo)記語言)解析就可以得到“百度”的主頁;
4.之后請(qǐng)求OneNET修改數(shù)據(jù)都將基于HTTP/1.1協(xié)議實(shí)現(xiàn)。
1.首先注冊(cè)并登錄OneNET賬號(hào),選擇“產(chǎn)品服務(wù)”下的MQTT物聯(lián)網(wǎng)套件;
2.選擇“MQTT物聯(lián)網(wǎng)套件”的老版本“多協(xié)議接入”,新版的MQTT也是原生支持HTTP/1.1協(xié)議接入,使用方法與接下來使用的“HTTP接入”相同,有興趣可以自行閱讀OneNET使用說明;
3.在“HTTP接入”產(chǎn)品下添加產(chǎn)品,參數(shù)可以隨意填寫不影響,建議除產(chǎn)品名稱外其余參數(shù)和小編保持一致;
4.在“ebyte”產(chǎn)品目錄下添加模擬電表設(shè)備“DTSU666_01”,設(shè)備編號(hào)可以使用生產(chǎn)編號(hào),這里使用模擬設(shè)備因此產(chǎn)品編號(hào)模擬為“S20220516001”,點(diǎn)擊“添加”;
5.進(jìn)入設(shè)備詳情界面查詢?cè)O(shè)備ID、API地址、APIKEY,第一次添加設(shè)備不具有APIKEY需要添加,手動(dòng)添加明文密鑰,服務(wù)器會(huì)自動(dòng)對(duì)明文進(jìn)行加密,之后使用都是使用加密后的密鑰;
6.在數(shù)據(jù)模板中添加“Ua”(A相相電壓)、“Ia”(A相電流),如圖所示:
1.可以在OneNET設(shè)備平臺(tái)“文檔中心”查看API接口使用說明;
2.目前NA111系列串口服務(wù)器與以太網(wǎng)網(wǎng)關(guān)僅支持POST與GET兩種請(qǐng)求方式,而HTTP/1.1協(xié)議共支持9種請(qǐng)求方式(GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH),其余請(qǐng)求方式只能在TCP客戶端模式結(jié)合短連接實(shí)現(xiàn),而OneNET-HTTP服務(wù)器在小編的印象中僅支持(GET、POST、PUT、DELETE)四種方式,先對(duì)“查詢數(shù)據(jù)流”和“上傳數(shù)據(jù)點(diǎn)”兩個(gè)常用API接口進(jìn)行說明其余API接口可以參考實(shí)現(xiàn);
1.配置串口服務(wù)器,使用動(dòng)態(tài)IP、隨機(jī)端口并保證設(shè)備能正常接入互聯(lián)網(wǎng),配置目標(biāo)地址(api.heclouds.com),端口(80),建議打開包頭返回方便觀察服務(wù)器反饋狀態(tài),若不返回包頭在包頭錯(cuò)誤,請(qǐng)求不合法時(shí)無法找到錯(cuò)誤原因,返回包頭則可以通過HTTP狀態(tài)碼判斷請(qǐng)求狀態(tài);
分類 | 分類描述 |
1** | 信息,服務(wù)器收到請(qǐng)求,需要請(qǐng)求者繼續(xù)執(zhí)行操作 |
2** | 成功,操作被成功接收并處理 |
3** | 重定向,需要進(jìn)一步的操作以完成請(qǐng)求 |
4** | 客戶端錯(cuò)誤,請(qǐng)求包含語法錯(cuò)誤或無法完成請(qǐng)求 |
5** | 服務(wù)器錯(cuò)誤,服務(wù)器在處理請(qǐng)求的過程中發(fā)生了錯(cuò)誤 |
2.使能短連接模式配置為5s(非必要但建議開啟減輕服務(wù)器壓力);
3.配置URL為/devices/ devices_id/datapoints;
配置包頭為api-key:df0JBIwvwcxI15eeyXS52bArshE=\r\nHost:api.heclouds.com;
此處串口服務(wù)器在POST模式下隱含了Content-Length:包頭信息,無需將此包頭配置到包頭數(shù)據(jù)中,上位機(jī)和網(wǎng)頁配置的包頭輸入框支持換行符的識(shí)別,不能使用轉(zhuǎn)義字符“\r\n”輸入,點(diǎn)擊“保存配置”,再點(diǎn)擊“重啟設(shè)備”;
4.根據(jù)手冊(cè)示例組包實(shí)際請(qǐng)求數(shù)據(jù)并使用JSON格式化工具校驗(yàn)數(shù)據(jù),如圖所示:
5.通過串口助手發(fā)送上報(bào)數(shù)據(jù),并使用平臺(tái)查詢上報(bào)數(shù)據(jù)是否成功:
6.演示關(guān)閉包頭返回后的接收:
1.修改設(shè)備請(qǐng)求方式與URL路徑其余配置與POST時(shí)相同,根據(jù)請(qǐng)求示例進(jìn)行配置如下圖所示:
2.根據(jù)請(qǐng)求示例可以得到請(qǐng)求數(shù)據(jù)的組包規(guī)則為“datastream_ids=Ua,Ia”,請(qǐng)求效果如下:
1.HTTP是超文本傳輸協(xié)議一般工作在TCP協(xié)議上,除了使用HTTP客戶端模式還可以使用TCP客戶端實(shí)現(xiàn)目前不支持的請(qǐng)求方式,比如接下來測(cè)試的刪除請(qǐng)求,利用DELETE刪除剛才測(cè)試的DTSU666_01設(shè)備;
2.登錄平臺(tái)查詢?cè)O(shè)備,使用“DELETE”請(qǐng)求成功。
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務(wù)郵箱:support@cdebyte.com
全國(guó)銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)-3