labview--http協議數據交互


最近接了一個項目,需求是要將采集到的數據,以以下要求上報,並且提供接口供上層系統下發指令。

采用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)來標識。

二、協議功能

  

TTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議。它可以使瀏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先於圖形)等。
HTTP是客戶端瀏覽器或其他程序與 Web服務器之間的應用層通信協議。在Internet上的Web服務器上存放的都是超文本信息,客戶機需要通過HTTP協議傳輸所要訪問的超文本信息。HTTP包含命令和傳輸信息,不僅可用於Web訪問,也可以用於其他因特網/內聯網應用系統之間的通信,從而實現各類應用資源超媒體訪問的集成。
 
三、運作方式
  在WWW中,“客戶”與“服務器”是一個相對的概念,只存在於一個特定的連接期間,即在某個連接中的客戶在另一個連接中可能作為服務器。基於HTTP協議的客戶/服務器模式的信息交換過程,它分四個過程:建立連接、發送請求信息、發送響應信息、關閉連接。

  

四、實現該項目數據上報

    明確兩點1、雙方都是采用http協議post方式2、json格式

      它分四個過程:建立連接、發送請求信息、發送響應信息、關閉連接。

      labview有自帶的http協議函數   在數據通信---協議---http客戶端    要實現post方法一般要用到(打開句柄、POST、添加頭、關閉句柄),在添加頭函數的文件頭處要留意頭文件格式。雙方統一URL,然后就可以在POST函數中寫入要上報的信息或文件到緩存區和獲取返回消息的頭部和體部了。其中還有個json格式的實現,可以直接使用字符串---平化還原字符串---平化至json,具體怎么用可以查看一下幫助文檔。

二、做接口供上層系統調用

    這一塊功能的實現要用到labview的web服務功能

    

第一步:新建一個項目,右鍵我的電腦 添加web服務

第二步:右鍵web資源,選擇新建VI

第三步:獲取信息資源(在互聯接口--web服務--)

  該處用的是讀取post數據。再使用從json還原函數。

 

 

這一塊寫的還是比較粗糙,其實在labview幫助文檔中有非常詳細的資料,通讀兩遍基本就可以對類似項目得心應手。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM