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

使用file_get_contents('php://input')处理POST请求始终返回空值的问题

解决PHP REST API中file_get_contents("php://input")返回空的问题

核心原因:请求参数传递方式错误

你在Postman里把参数放在URL的查询字符串(localhost/rest_api_test/listings?name="new"&id=12345)里,这是GET请求的传参方式,而php://input是用来读取**POST请求体(Request Body)**里的数据的,自然会返回空字符串。

正确的操作步骤

  1. 在Postman中确认请求方法选择为POST
  2. 切换到Body标签页,选择raw格式,然后在下拉菜单中选JSON
  3. 在输入框中写入JSON格式的请求数据,比如:
{
  "name": "new",
  "id": 12345
}
  1. 发送请求后,file_get_contents("php://input")就能正确读取到请求体中的JSON数据了。

其他可能的排查点

  • 检查PHP配置:打开php.ini,确认enable_post_data_reading设置为On,如果该选项为Off,会导致无法读取请求体数据。
  • 避免重复读取:php://input只能被读取一次,如果你的代码中提前使用了$_POST、fopen("php://input")或其他方式读取过,后续再调用file_get_contents就会返回空。
  • 确认请求头:确保请求头包含Content-Type: application/json,Postman在选择raw-JSON格式时会自动添加,但如果手动修改过需要检查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:42:06