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

树莓派Python发送POST请求JSON到Laravel返回空数组如何解决

修复方案

你遇到的问题由多个配置不匹配导致,按以下步骤逐一修复即可:

1. 修正路由请求方法

树莓派Python代码使用POST方法发送数据,但当前Laravel的api路由定义为GET类型,请求类型不匹配导致无法正确接收参数。
将routes/api.php中的路由修改为:

Route::post('dictionary', [DictionaryController::class, 'store'])->name('dict');

2. 修正请求路径

Laravel的api.php中定义的所有路由默认会自动添加/api前缀,你当前Python代码请求的是站点根路径,没有匹配到你定义的dictionary路由。
将Python代码中的请求地址修改为:

# 注意末尾新增的/api/dictionary和路由对应
ip = 'http://192.168.1.6:14000/api/dictionary'

3. 优化Python请求逻辑(可选,避免JSON序列化异常)

requests库原生支持直接传递字典参数作为JSON payload,不需要手动序列化、手动设置请求头,能减少格式出错概率。
可将原有的请求代码替换为:

# 不需要手动调用json.dumps,也不用手动设置Content-Type头
req = requests.post(ip, json=mac_dict)

验证排查

如果修改完成后仍返回空数据,可在Laravel的store方法中先打印原始请求内容,确认是否正常接收到数据:

public function store(Request $request)
{
    // 输出原始请求体到storage/logs/laravel.log中,检查是否有你发送的JSON内容
    \Log::info('收到的原始请求内容:' . $request->getContent());
    return response()->json($request->all());
}

如果日志中能看到正确的JSON内容,但$request->all()为空,只需检查你发送的JSON格式是否符合规范即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:15:04