当前位置: > > > PHP - 获取通过body传递的POST数据(接收Body中的JSON内容)

PHP - 获取通过body传递的POST数据(接收Body中的JSON内容)

    我们知道可以通过 $_POST['paramName'] 获取通过表单(multipart/form-data)提交的数据。但有时客户端会直接将请求数据以字符串的形式都放到 body 里传递过来,那么服务端就需要使用 php://input 方式来接收数据。

1,php://input 介绍

(1)php://input 是个可以访问请求的原始数据的只读流。 
(2)php://input $_POST 的使用场景比较:
  • 只有 Coentent-Type application/x-www-data-urlencoded multipart/form-data 情况下,PHP 才会将 http 请求数据包中相应的数据填入全局变量 $_POST
  • 只有 Coentent-Type multipart/form-data 的时候,PHP 不会将 http 请求数据包中的相应数据填入 php: //input,否则其它情况都会。

2,使用样例

(1)这里我使用 Postman 工具来发送请求,具体内容见下方图片,该工具的使用方法见我之前写的文章(点击查看

(2)服务端代码如下:
<?
//通过输入端来获取数据
$body = file_get_contents('php://input');
echo "--- 获取到的原始数据--- \r\n".$body;
echo " \r\n \r\n";
//解析数据
$json = json_decode($body );
echo "--- 解析数据---  \r\n";
echo "name:".$json->{'name'}."\r\n";
echo "age:".$json->{'age'}."\r\n";
?>

(3)客户端这边接收到的返回结果如下:
评论0