You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP接收Lora设备POST数据时$_POST为空数组的问题求解

问题根源

  • PHP的$_POST超全局变量仅支持解析Content-Type为application/x-www-form-urlencoded或multipart/form-data的POST请求,Lora类IoT设备发送POST请求时,通常携带的是raw格式的JSON/二进制数据,Content-Type多为application/json,这类数据不会被自动解析到$_POST中,因此你拿到的是空数组。

修复方案

替换原有代码,从PHP原生输入流读取原始POST数据即可,示例代码如下:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // 读取原始POST请求体
    $rawPostData = file_get_contents('php://input');
    // 直接写入原始内容,若需要数组操作可调用json_decode($rawPostData, true)转换
    file_put_contents('aa.txt', $rawPostData);
}
?>

如果需要同时排查请求头信息,可使用扩展版本代码:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $logData = [
        'request_headers' => getallheaders(),
        'request_body' => file_get_contents('php://input')
    ];
    file_put_contents('aa.txt', json_encode($logData, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
}
?>

额外排查项

  • 确认aa.txt文件所在目录有可写权限,权限不足也会导致写入内容异常
  • 如果设备发送的是二进制非结构化数据,不需要做json编码处理,直接写入原始数据即可

内容的提问来源于stack exchange,提问作者Nidhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:18:03