最近接了一個項目,需求是要將采集到的數據,以以下要求上報,並且提供接口供上層系統下發指令。
采用restful的http協議進行交互;
輸入輸出參數皆為json體。
響應包含三部分:
Code:業務碼 1000為成功
Data:響應數據
Desc:success 成功 failed 失敗
例子:
Request: {“areaId”:415}
Response: { "code": 1000, "data": { }, "desc": "success" } |
一、HTTP技術架構
HTTP是一個客戶端和服務器端請求和應答的標准(TCP)。客戶端是終端用戶,服務器端是網站。通過使用Web瀏覽器或者其他工具,客戶端發起一個到服務器上指定端口的HTTP請求。(我們稱這個客戶端)叫用戶代理(user agent)。應答的服務器上存儲着一些資源,我們稱應答服務器為源服務器(origin server)。用戶代理和原服務器中可能存在多個中間層,比如代理、網管等。盡管TCP\IP協議是互聯網最流行的應用,HTTP協議並沒有規定必須使用它和它支持的層。 事實上,HTTP可以在任何其他互聯網協議上,或者在其他網絡上實現。HTTP只假定(其下層協議提供)可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。
通常,由HTTP客戶端發起一個請求,建立一個到服務器指定端口(默認是80端口)的TCP連接。HTTP服務器則在那個端口監聽客戶端發送過來的請求。一旦收到請求,服務器(向客戶端)發回一個狀態行,比如"HTTP/1.1 200 OK",和(響應的)消息,消息的消息體可能是請求的文件、錯誤消息、或者其它一些信息。
目前使用labview做這一塊功能的資料真的很少,經過一段時間的琢磨,已經找出了解決方法。
通過HTTP或者HTTPS協議請求的資源由統一資源標示符(Uniform Resource Identifiers)(或者,更准確一些,URLs)來標識。
二、協議功能
四、實現該項目數據上報
明確兩點1、雙方都是采用http協議post方式2、json格式
它分四個過程:建立連接、發送請求信息、發送響應信息、關閉連接。
labview有自帶的http協議函數 在數據通信---協議---http客戶端 要實現post方法一般要用到(打開句柄、POST、添加頭、關閉句柄),在添加頭函數的文件頭處要留意頭文件格式。雙方統一URL,然后就可以在POST函數中寫入要上報的信息或文件到緩存區和獲取返回消息的頭部和體部了。其中還有個json格式的實現,可以直接使用字符串---平化還原字符串---平化至json,具體怎么用可以查看一下幫助文檔。
二、做接口供上層系統調用
這一塊功能的實現要用到labview的web服務功能
第一步:新建一個項目,右鍵我的電腦 添加web服務
第二步:右鍵web資源,選擇新建VI
第三步:獲取信息資源(在互聯接口--web服務--)
該處用的是讀取post數據。再使用從json還原函數。
這一塊寫的還是比較粗糙,其實在labview幫助文檔中有非常詳細的資料,通讀兩遍基本就可以對類似項目得心應手。