关于我使用webhook使用http接口的方式来获取MQTT 消息发布 消息应答等事件的数据,之前我用4.3.8 版本的时候payload是正常的josn字符串 但是用了5.10 就变成了另外一种
这个是采用mqttX工具获取到的数据 是这种格式
这个是采用接口获取到的数据 ,访问方法用的也是文档上提供的POST方法 其他几个像clientid 这种都是正常的除了payload,请求头给的也是application/json,麻烦有知道的大佬给看看是什么问题呢
关于我使用webhook使用http接口的方式来获取MQTT 消息发布 消息应答等事件的数据,之前我用4.3.8 版本的时候payload是正常的josn字符串 但是用了5.10 就变成了另外一种
这个是采用mqttX工具获取到的数据 是这种格式
4.3 和 5.10 是不兼容的。
看不出来,你的规则怎么写的,还有更详细的信息么。
你图里面的数据结构是:
一个内嵌于 JSON 中的、格式错误的或自定义的字符串,其语法混合了 URL Query String 和 JSON 的特点。
不是标准的 json,你可以试一下发一个最简单的 json,然后调试看看。
我刚创建了一个简单的打印 request 的 http server,是正常的。
应该是你的 http server 做了什么额外的处理吧。可以再检查一下。
我看不懂你这代码。你找个会的人帮你检查一下吧。
这有啥看不懂的,postman格式对不对,一样的请求为啥一个可以一个不可以
再说,你看不看懂我的代码有啥关系,你就看数据格式对不对就行了,一个webhook调用个接口,获取个数据,就这个情况一个可以一个不可以,也不知道复杂在那里,只是问你,为啥其他的字段都是对的 ,就payload出来格式是错的
有道理,怎么重现的。方便搞一个详细的步骤不
我自己本地试是正常的,想了解一下详细的复现过程。
我没有任何多余的操作,所以我才问你的,我只是安装了emqx,然后在控制台开启了webhook 然后就是使用接口访问
所以,我应该怎么一步步的复现,有详细的步骤么。
就是那种你把 http server 代码放上来,一步步教我怎么使用 postman 来复现(我没用过,所以需要指导一下。)
你能提供一个关于http请求的时候的源数据格式吗
你也不要这么讲,我也不是第一次问问题,你也不是第一次解决我的问题,现在就http请求,你让我给你复现,我还要怎么给你复现
好的,如果你实在不知道应该如何复现,那我就把我如何测试的详细步骤写一下,你可以按照这个步骤对比排查一下(实在不知道你在说什么)
python3 simple_http_server.py
simple_http_server.py.zip (1.4 KB)
2. 配置 WEBHOOK
==================================================
请求方法: POST
请求路径: /
HTTP版本: HTTP/1.1
客户端地址: ('127.0.0.1', 57112)
请求头:
content-length: 469
host: 127.0.0.1:8000
content-type: application/json
==================================================
POST数据: {"publish_received_at":1756263809751,"pub_props":{"Payload-Format-Indicator":0,"User-Property":{}},"qos":1,"topic":"test/1/100","clientid":"clientid","client_attrs":{},"peerhost":"172.100.239.1","payload":"{\n \"test\": 1\n}","username":"emqx_u1","event":"message.publish","metadata":{"rule_id":"test_WH_D"},"peername":"172.100.239.1:63328","timestamp":1756263809752,"node":"emqx@127.0.0.1","id":"00063D5008831A7AF445000017C00003","flags":{"retain":false,"dup":false}}
127.0.0.1 - - [27/Aug/2025 03:05:06] "POST / HTTP/1.1" 200 -