payload过大调用http发送失败问题


emqx版本 4.2.14
调用内置接口:/api/v4/mqtt/publish_batch 发送主题时,报这个错误。其中payload为模板json信息,往这个接口里扔了两个比较大的消息体,topic是一样的。不知道是emqx内置的http-server不支持这么大的post消息体还是emqx发送的mqtt-payload有限制? 尝试改过 max_packet_size,不起效果。

从日志上来看,他报的是 8001104 不是一个 invalid_string,
看起来像是你的http 客户端 encode 大 json 里面没有对吧。
你直接用 curl 把 json encode 后发试试。

PS: 建议升级一下,用 5.8.1 4.2.12 是很老的版本了,已经过了维护周期了。

你的意思是我组装json就有问题么?我打印了json_encode 没问题哎。

不是我的意思,是你提供的日志说这个 json 不合法。

如果打印出来没问题,建议你直接把 encode 后的 json 用 curl 发一下,看看有没有可能是不是因为太大,被 emqx 截断了(目前支持还没有发生过这种问题)


curl返回bad request

你直接用 curl 的的命令行,然后按 API 原文档格式里面发就行了。不用通过代码的

命令行和代码一样的吧?json太大了用命令行发不方便。反正这个json如果拆小一点就能正常发送了,而且过大 有时候在dashboard后台订阅 后台都容易崩溃~

那如果认为一样了,为啥会返回 bad request,不是应该成功么。