边缘计算框架EdgeX Foundry使用详解6(将数据通过POST方式推送到服务器上)
EdgeX Foundry 支持 MQTT 和 REST 这两种数据输出通道。前文中我介绍了如何将数据推送到 MQTT 服务器,这次接着介绍如何通过 HTTP POST 方式将数据推送到服务器。
(3)这里使用 Postman 来发送 Post 请求进行注册:


六、将数据通过 POST 方式推送到服务器上
1,准备工作
(1)我先我们准备一个远程的 HTTP 服务器用于接受推送过来的数据。这里我用 php 实现,请求地址如下:
(2)里面内容很简单,就是将接收到的数据以追加的形式,不断的添加到 log.txt 文件中。
<?php //通过输入端来获取数据 $body = file_get_contents('php://input'); //将数据写到文件中(追加的方式) $file = 'log.txt';//要写入文件的文件名(如果文件不存在,将会创建一个) if($f = file_put_contents($file, $body.PHP_EOL, FILE_APPEND)){ echo "写入成功"; }
2,客户端注册
(1)要想让 EdgeX Foundry 能够将数据推送到服务器,我们就需要先将上面的服务器地址在 EdgeX 这边注册为一个输出客户端。
- 请求地址(POST 方式):http://EdgeX-IP:48071/api/v1/registration
(2)请求内容如下,特别注意高亮部分:我们定义的远程服务器的地址、端口、路径、提交方式等,同时这里只推送随机数设备的数据:
{ "name": "QuickStartExport2", "addressable": { "name": "EdgeXTestREST", "protocol": "http", "method": "POST", "address": "192.168.60.1", "port": 80, "path": "/rest.php" }, "format": "JSON", "filter":{ "deviceIdentifiers":["Random-Integer-Generator01"] }, "enable": true, "destination": "REST_ENDPOINT" }
(3)这里使用 Postman 来发送 Post 请求进行注册:

(4)注册后我们同样可以通过 GET 方式请求这个地址,查看当前所有已注册的客户端。从返回结果可以看出我们的 HTTP 服务器已经注册成功了(在它之前还有个系统默认注册的规则服务,这里就不展示了)。

3,观察测试
经过上面注册以后,设备生成的随机数据就会经由 EdgeX Foundry 推送到 HTTP 服务器上。我们打开服务器上的 log.txt 文件可以看到接受到的数据如下:
