我正在尝试创建一个小的API文件,无论出于什么原因,我通过POST发送cURL数据的api.php
文件都没有收到数据。我无休止地看着这里和谷歌,似乎无法弄清楚出了什么问题。我尝试了各种不同的方法和工作。
这是我的代码。
client.php:
$url = 'http://localhost/listcross2/api.php';
//var_dump($_POST);
$rCURL = curl_init();
$params = array('action' => 'login',
'username' => $_POST["username"],
'password' => $_POST["password"]);
curl_setopt_array($rCURL, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_REFERER => "http://www.localhost/listcross2/client.php",
CURLOPT_POSTFIELDS => http_build_query($params)
)
);
$aData = curl_exec($rCURL);
if(curl_errno($rCURL))
{
echo 'error:' . curl_error($rCURL);
}
curl_close($rCURL);
$login_result = json_decode ( $aData, true );
var_dump($login_result);
api.php
$value = "An error has occurred within API: ";
var_dump($_POST);
// For POST actions
if (!empty($_POST))
{
switch($_POST["action"])
{
case "login":
if (isset($_POST["username"]) && isset($_POST["password"]))
$value = login($_POST["username"], $_POST["password"]);
else
$value = "Missing argument";
break;
}
}
exit(json_encode($value));
答案 0 :(得分:0)
当我提交到API页面时,出现以下错误:
Fatal error: Call to undefined function login() in /var/www/playground/api.php on line 13
如果定义名为login()的函数,则不会再出现此错误。此外,这段代码:
exit(json_encode($value));
导致null值,因为您传递的是无效参数。如果传递json_encode()数组,则不再获取此函数返回的空值。登录功能的一个简单示例:
function login($username, $password) {
return array("username"=>$username, "password"=>$password);
}