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)来标识。
二、协议功能
四、实现该项目数据上报
明确两点1、双方都是采用http协议post方式2、json格式
它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。
labview有自带的http协议函数 在数据通信---协议---http客户端 要实现post方法一般要用到(打开句柄、POST、添加头、关闭句柄),在添加头函数的文件头处要留意头文件格式。双方统一URL,然后就可以在POST函数中写入要上报的信息或文件到缓存区和获取返回消息的头部和体部了。其中还有个json格式的实现,可以直接使用字符串---平化还原字符串---平化至json,具体怎么用可以查看一下帮助文档。
二、做接口供上层系统调用
这一块功能的实现要用到labview的web服务功能
第一步:新建一个项目,右键我的电脑 添加web服务

第二步:右键web资源,选择新建VI

第三步:获取信息资源(在互联接口--web服务--)
该处用的是读取post数据。再使用从json还原函数。

这一块写的还是比较粗糙,其实在labview帮助文档中有非常详细的资料,通读两遍基本就可以对类似项目得心应手。

labview--http协议数据交互的更多相关文章
- UDP协议实现客户服务器数据交互
UDP协议实现客户服务器数据交互 按照往常一样将今天自己写的题目答案写在了博客上习题:客户端循环发送消息给服务端,服务端循环接收,并打印出来,直到收到Bye就退出程序. package network ...
- 分布式环境中,模块数据交互协议分析 (百度brpc)
1. 背景 之前听到同事说,要为自己的模块考虑写个数据协议.今天有空想了一下.写出来,方便后续使用. 开源代码brpc中可以支持多种协议,nshead.redis.mongo等20多种协议. 2. 什 ...
- JSONP -- 跨域数据交互协议
一.概念 ①传统Ajax:交互的数据格式——自定义字符串或XML描述: 跨域——通过服务器端代理解决. ②如今最优方案:使用JSON格式来传输数据,使用JSONP来跨域. ③JSON:一种数据交换格式 ...
- Protobuf 完整解析 - 公司最常用的数据交互协议
Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关.语言无关.可扩展,可用于通讯协议和数据存储等领域. 数据交互xml.json.pro ...
- TCP移动端跟服务器数据交互
同一台笔记本下的客户端和服务端 TCPClient 客户端: // RootViewController.h#import <UIKit/UIKit.h>#import "As ...
- C# 移动端与PC端的数据交互
小记:针对目前功能越来越强大的智能手机来说,在PC端支持对手机中的用户数据作同步.备份以及恢复等保护措施的应用已经急需完善.不仅要对数据作保护,而且用户更希望自己的手机跟PC能够一体化,以及和远程服务 ...
- register_sysctl_table实现内核数据交互
作者:Younger Liu, 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. Sysctl是一种用户应用来设置和获得运行时内核的配置参数的一种有效方式,通 ...
- 《ServerSuperIO Designer IDE使用教程》- 6.增加与阿里云物联网(IOT)对接服务,实现数据交互。发布:v4.2.4 版本
v4.2.4 更新内容:1.增加了对接阿里物联网平台的服务.下载地址:官方下载 6. 增加与阿里云物联网(IOT)对接服务,实现数据交互 6.1 概述 为了满足业务系统数据上云的要求,Se ...
- 《ServerSuperIO Designer IDE使用教程》-2.与硬件网关数据交互,并进行数据级联转发,直到云端。发布:v4.2.1版本
v4.2.1 更新内容:1.重新定义数据转发文本协议,使网关与ServerSuperIO以及之间能够相关交互数据.2.扩展ServerSuperIO动态数据类的方法,更灵活.3.修复Designer增 ...
随机推荐
- 使用jmeter进行简单的压测
安装下载 前往官网下载,[地址] 环境 需要java环境,此处略 最好对jmeter配置下环境变量,方便打开,此处略 运行 启动jmeter 进入到bin目录,输入 ./jmeter 启动 ...
- stack的三个意思
(转自阮一峰的网络日志,原网址http://www.ruanyifeng.com/blog/2013/11/stack.html) 阮一峰老师终于又更新博客了,个人认为这篇文章有一定科普意义,有一定解 ...
- M4修改外部晶振8M和25M晶振的方法
共计修改三个参数: 1.HSE_VALUE 具体位置在stm32f4xx.h中 2.PLL_M 具体位置在system_stm32f4xx.c中 3.Keil编译器 工程的Opt ...
- HTML5零散知识点总结
1.产生ioc图标的网站: http://www.bitbug.net/ 链接ioc图标: <link rel="shortcut icon" type="imag ...
- jquery遍历数组
示例: ajax返回的数组进行遍历 $.ajax({ type:"POST", url:"<?php echo base_url(); ?>public_re ...
- CSS:层叠样式表—position
CSS position属性用于指定一个元素在文档中的定位方式.top,right,bottom和left属性则决定了该元素的最终位置. 常见语法 static | relative | absolu ...
- Oracle子查询之简单子查询
Oracle 简单子查询 顾名思义,简单子查询是嵌套在 SQL 语句中的另一个SELECT 语句,并且子查询只返回一列数据 1,单行子查询: 子查询 (内查询) 在主查询之前一次执行完成.子查询的结果 ...
- Canvas状态的保存与恢复
Canvas的API提供了save()和restore()的方法,用于保存及恢复当前canvas绘图环境的所有属性. save()与restore()方法可以嵌套调用 save()方法将当前绘图环境压 ...
- php.ini修改后,重启无效
今天做项目,上传图,需要修改php.ini.发现修改后,多次长期服务器也没用,在网上找了好多方案.介绍一下我的流程 1.使用phpinfo()找到php.ini的位置,如果位置不准确,修改肯定没有任何 ...
- 常见IE8兼容性问题及解决
1.css3媒体查询 IE8不支持媒体查询 解决:respond.js,在页面中所有css文件的引用位置之后引用Respond.js 2.HTML5新标签 IE8不支持H5新标签 解决:html5sh ...