1. 程式人生 > >http報文解析與測試

http報文解析與測試

OneNET提供了豐富的API介面,API的典型應用場景為業務應用第三方平臺)與平臺進行資料互動/資源管理時使用 如下圖所示: 第三方平臺在呼叫API的時候,實際進行兩個步驟Step1: 與OneNET HTTP伺服器建立TCP連線;Step2: 按照API文件中包格式說明,傳送滿足改格式的HTTP報文。 實際上,任何一個TCP client(例如:pc的TCP除錯軟體,wifi模組,GPRS模組等)均可以完成上述步驟。 也就是說,一般的終端,也可以通過上述兩個步驟來使用API介面;API可以作為一種特殊的裝置接入協議存在,而不僅僅限於第三方平臺的互動工具。 需要注意的是,API可以實現的功能主要為: 1、 資料點的上傳與查詢 2、 平臺資源的管理,包括 裝置、資料流、觸發器等 3、 傳送命令給某一知道裝置ID的裝置 注意:並不具有接收平臺下發命令的功能 像前面所提到的那樣,HTTP API 並非是為裝置接入而設計的

,所以在功能上可能會與裝置側的需求有所出入,使用者在進行協議選擇的時候,請充分考慮這一點。 API提供的強大的功能,而且在很多協議使用的時候,也經常會涉及到API的使用。 接下來我們將通過2個例子向大家詳細介紹一下API的使用方法,希望能幫助大家理解如下這些問題: 1、 URL如何填寫? 2、 HTTP頭部和URL引數如何填寫? 3、 裝置端如何呼叫API,如何組包?例1:設備註冊 本例中,我們將使用 fiddler HTTP除錯工具呼叫設備註冊的API(在批量裝置接入的時候會經常用到) 本API中涉及到,URL,URL引數,HTTP內容的使用方法: step1: 開啟fiddler工具,填寫相關引數,如下圖所示:
step2: 點選execute,點選左側的執行結果,檢視API呼叫結果 step3: 選擇頂部的檢視方式按鍵,選擇raw即可以看到完整的傳送與接收的報文 可以看到,這裡傳送的實際報文的格式為:  

  1. POST http://api.heclouds.com/register_de?register_code=cba89peVvQ7p28sD HTTP/1.1
  2. Host: api.heclouds.com
  3. Con**-Length: 44
  4. {"sn": "20160909001","title": "myedpdevice"}

複製程式碼

此格式也就是我們使用TCP客戶端需要傳送的完整HTTP報文

格式。 注意: 1、 Host: api.heclouds.com       Con**-Length: 44       此兩行為fiddler工具自動補充的,Con**-Length: 44其中的44為HTTP內容({"sn": "20160909001","title": "myedpdevice"})整個欄位的長度 2、 Con**-Length: 44其後有兩個回車換行符 我們使用TCP測試工具進行確認: TCPUDPDebug_Setup_1.032.rar (1020.93 KB, 下載次數: 473) step1: 與 api.heclouds.com :80 建立連線 step2: 將fiddler中得到的程式碼,複製到傳送框中,點擊發送 這裡可以看到,通過組織完整的HTTP報文,可以在一個簡單的TCP client上,通過傳送報文給OneNET HTTP伺服器(api.heclouds.com:80)來完成API的呼叫,而fiddler 工具可以幫助我們快速的驗證API,以及確定正確的HTTP報文的格式。 本例中涉及到的API詳解請參考 裝置批量建立說明例2: 資料點查詢 本例中,我們將利用資料點查詢API來完善說明部分API的使用 API格式如下: 本API中涉及到,URL,URL引數,HTTP頭部的使用方法: step1: 同上例,首先在fiddler中填寫相關引數 step2: 點選execute,點選左側的執行結果,檢視API呼叫結果 其完整的HTTP報文為:  

  1. GET http://api.heclouds.com/devices/3420352/datap**?datastream_id=loc&limit=10 HTTP/1.1
  2. api-key: LOTJps=fkcUUgxaQX37uFjmkOis=
  3. Host: api.heclouds.com

複製程式碼

注意,Host: api.heclouds.com其後有兩個回車換行符 按照例1中的方法,可以在TCP client中傳送該報文,得到的結果為: 本文演示瞭如何在一個TCP client上來完成API的呼叫,在fiddler工具的輔助下,我們可以快速確定HTTP報文的形式,通過Step1: 與OneNET HTTP伺服器建立TCP連線;Step2: 按照API文件中包格式說明,傳送滿足改格式的HTTP報文。 這兩個步驟,可以在任何裝置上使用API。