【问题标题】:PHP $_POST returns an empty array for http://localhost on MAMP serverPHP $_POST 在 MAMP 服务器上为 http://localhost 返回一个空数组
【发布时间】:2014-04-26 20:32:46
【问题描述】:

我对 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

我得到以下输出:

字符串(4)“发布”

数组(0){ }

数组(0){ }

当我打电话时

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

它返回 {"name":"john"}

【问题讨论】:

    标签: php http-post httprequest mamp


    【解决方案1】:

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

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

    然后

    echo $_POST['foo'];
    

    【讨论】:

    • 我仍然一无所获。数组还是空的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2017-07-25
    • 2012-07-31
    • 2019-05-28
    • 2015-11-24
    • 1970-01-01
    • 2016-01-25
    相关资源
    最近更新 更多