Skip to Content
🎉 RHILEX 最新版已发布。 了解更多 →

数据推送 HTTP

RHILEX 支持将采集到的数据推送到 HTTP 服务端。

实例

新建 HTTP 北向资源

http1

目前版本仅支持 HTTP,HTTPS 暂时不支持。

新建规则

在接入设备操作界面给设备配置脚本:

rule

编写脚本

Lua
Actions = { function(args) local dataT, err = json:J2T(args) if (err ~= nil) then Throw(err) return true, args end for _, value in pairs(dataT) do local params = {} params[value['tag']] = value.value local json = json:T2J({ id = time:TimeMs(), method = "thing.event.property.post", params = params }) local err = data:ToHttp("$UUID", json) if err ~= nil then Throw(err) end end return true, args end }

其中 $UUID 参数是一开始建立的 HTTP 北向资源的 ID,可以在快捷选择模板里面创建。


测试服务

下面给出一个简单的 Python Http Server 示例:

Python
from http.server import BaseHTTPRequestHandler, HTTPServer class RequestHandler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write(b"Hello, world!") def do_POST(self): content_length = int(self.headers["Content-Length"]) post_data = self.rfile.read(content_length) print("Received POST data:", post_data.decode()) self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write(b"Data received successfully!") def main(): try: server = HTTPServer(("0.0.0.0", 8080), RequestHandler) print("HTTP server started on port 5558...") server.serve_forever() except KeyboardInterrupt: print("^C received, shutting down the server") server.socket.close() if __name__ == "__main__": main()

脚本解析

使用到的核心函数:

  • json:J2T: 将 JSON String 转为 Lua 的表
  • json:T2J: 将 Lua 的表转转为 JSON String
  • data:ToHttp:数据转发到 HTTP Server 所有用到的函数均可在:规则指南  找到详细资料。
© 2023-2026 RHILEX Technologies Inc. All rights reserved.