使用 Postman 调用端点时,来自 Code Igniter 的 $_POST 变量为空

问题描述 投票:0回答:0

我有一个使用 Code igniter 构建的 Web 应用程序,它正在运行,并且希望能够通过邮递员从某个控制器调用一些功能。
因为我正在使用邮递员(出于测试目的),所以我忽略了整个登录/验证逻辑,只专注于实现控制器的功能。
问题是我的

$_POST
(和我的
$this->input->post()
)变量在到达控制器函数时是空的。我已经尝试将此变量记录在
Config.php
文件中(我相信这是使用 Code Ignitier 时要调用的第一个文件)并且此时它已经是空的。

我如何测试?
在我的公共功能中,我正在打印

$this->input->post()
的结果。从邮递员调用该函数时结果为空,但当我从我的网络应用程序中调用时,结果显示通过请求传递的有效负载。
从那一刻起,我从调用堆栈上升到
Config.php
文件,这是我尝试打印
$_POST
的值的地方。
我也尝试过使用
json_decode(file_get_contents('php://input'), true);
但没有成功。

我的php代码:

public function myFunction()
    {
        
        $x = json_decode(file_get_contents('php://input'), true);
        var_dump($x);
        var_dump($_POST);
        var_dump($this->input->post('payload'));
}

总结:

  • 尝试不同类型的内容类型与邮递员(如下所示)
  • 也尝试了不同的方式来显示帖子正文(如上图)
  • 尝试在代码执行的不同部分记录帖子正文

要求:
发布:http://localhost/myController/myFunction
标题:
用户名:我的用户

调用 myFunction 的结果:

NULL
array(0) {}
NULL

为什么在使用邮递员时,

$this->input->post()
$_POST
在这两种情况下都是空的?

编辑: 如前所述,我尝试使用

form-data
x-www-form-urlencoded
但结果仍然相同。

php rest codeigniter post postman
© www.soinside.com 2019 - 2024. All rights reserved.