labview--http协议数据交互 - 努力努力再努力zx
最近接了一个项目,需求是要将采集到的数据,以以下要求上报,并且提供接口供上层系统下发指令。
采用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帮助文档中有非常详细的资料,通读两遍基本就可以对类似项目得心应手。