PHP $ _POST在MAMP服务器上为http:// localhost返回一个空数组

时间:2014-04-26 20:32:47

标签: php http-post httprequest mamp

我对PHH世界很陌生,我正在尝试实现一些Rest API。

我在MAC上安装了MAMP服务器。然后我在api.php中编写了以下php代码:

<?php
$api = new RestUtils;
$api->processRequest();

class RestUtils
{
public static function processRequest()
{
       $request_method = strtolower($_SERVER['REQUEST_METHOD']);
       var_dump($request_method);
       var_dump($_POST);
       var_dump($_REQUESTS);
    }
 }
?>

然后在我的终端窗口中,执行以下命令:

curl -X POST -H "Content-Type: application/json" -d '{"name": "john"}' http://localhost:8888/api.php

我得到以下输出:

string(4)&#34; post&#34;

阵列(0){ }

阵列(0){ }

当我致电

echo file_get_contents("php://input"); 

它返回{&#34;名称&#34;:&#34; john&#34;}

1 个答案:

答案 0 :(得分:0)

您正在发布原始字符串。如果您希望PHP将该字符串处理为$ _POST,则必须将其作为key=value对提交,例如。

-d 'foo:{"name":"john"}'

然后

echo $_POST['foo'];