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

如何用Python的requests模块向Express服务器POST JSON数据?

问题解决:Python POST JSON到Express服务器接收为空

核心原因

你的Python脚本用data=data发送的是**表单编码(application/x-www-form-urlencoded)的数据,而Express服务器通过express.json()中间件只解析JSON格式(application/json)**的请求体,所以服务器无法识别,导致req.body为空。

修复步骤

1. 修改Python脚本

把data=data替换为json=data,requests会自动将数据序列化为JSON,并设置正确的Content-Type请求头:

import requests
data = {'test':'Hello World!'}
response = requests.post("XXXXX.herokuapp.com/", json=data)

2. 修复服务器代码的语法问题

服务器里的错误响应代码存在写法错误,JSON.parse不能用来格式化字符串,直接构造JSON对象即可:

app.post('/', function(req, res) {
    fs.writeFile('./get.json', JSON.stringify(req.body), err => {
        if (err) {
            res.json({status: false, err: err.message});
        } else {
            res.json({status: true});
        };
    });
});

验证

修改后重启服务器,运行Python脚本,再发送GET请求就能收到{"test":"Hello World!"}了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 10:51:59