PHP更新API中php://input返回异常响应,如何获取Postman参数?
解析Postman调用API时php://input的响应及参数获取方法
一、你看到的响应内容是什么
你输出的这段内容是multipart/form-data格式的HTTP请求体,这是Postman选择用「form-data」方式传递参数时的标准请求格式:
- 开头的
----------------------------065126822322612777394821是字段分隔符(boundary),用来区分不同的表单字段 - 每个字段块中的
Content-Disposition: form-data; name="id"表示该字段的名称为id,下方的382就是对应的字段值 - 结尾的
----------------------------065126822322612777394821--是请求体的结束标记
你代码里用json_decode解析是无效的,因为当前请求体是表单格式,不是JSON格式。
二、如何获取Postman传递的参数值
方法1:直接使用PHP超全局变量$_POST
PHP会自动解析multipart/form-data格式的请求体,将字段值存入$_POST数组,直接调用即可:
// 获取参数 $id = $_POST['id']; $status = $_POST['status']; // 输出验证 var_dump($id, $status);
方法2:若需手动解析php://input(不推荐)
如果因为特殊场景必须手动处理请求体,需要按分隔符(boundary)分割内容提取字段,但这种方式没必要,PHP已经帮你完成了解析工作。
补充:如果想使用JSON格式传参
如果你原本打算用JSON传递参数,需要在Postman中调整请求体设置:
- 选择「raw」格式,然后将类型切换为「JSON」
- 输入JSON格式的参数,比如:
{"id": 382, "status": "Created"} - 此时你的原代码
json_decode(file_get_contents("php://input"))就能正常解析出参数对象。
内容的提问来源于stack exchange,提问作者winfred adrah
相关产品推荐
相关产品推荐

