EMQX 规则引擎 data_to_webserver 怎么转发

环境信息

  • EMQ X 版本:4.3.5
  • 操作系统及版本:ubuntu
  • 其他

问题描述

设置规则如下


web端接收消息为空,不知道是不是body这里也要设置,文档好像没有说明这里

使用 POST 方法向 Web 服务发送数据时,若未详细设置 body ,将使用规则引擎输出的所有字段键值组成json字符串进行发送。

本地测试可以正常发送带有 body 的 HTTP 请求

image

  • 请确认 HTTP Server 是否收到消息。
  • 若未收到请检查资源的 URL 配置及相应动作的 path 配置是否正确。

您好,我现在emq配置的body内是留空的,http端使用php的$_POST变量接收(EMQ的method设置的也是POST),使用http请求工具发送post到http服务可以正常写入数据库,但是EMQ发起的http携带的POST参数确实是空的,有请求但是没有参数,从nginx日志看确实有请求,但是比较小,应该是没有携带请求参数,所以怀疑是EMQ设置的问题

使用抓包工具检查下是否有 HTTP 请求发出?
我刚刚的截图中是 Wireshark 抓到的 HTTP 请求。

稍等,我测试下回复您

刚刚抓包看了下,确实是有数据的,我再研究下

另外可以检查下 http 请求工具发送的 Headers 和 EMQ X 中配置的 Headers 有无差别。

有可能是 php server 对 Headers 作了检查。可以尝试将 EMQ X 中的 Headers 配置成与http请求工具中一样的来排除这部份影响。

我也遇到这个问题 但是不知道怎么解决