php - "error":true,"message":"required parameters are not available" while check api call using postman
问题描述
我正在学习如何使用 volley 将 android 应用程序与 php 管理面板连接起来,为此我使用了Javatpoint的教程,但是当他们告诉我在Postman web中创建和检查 apicall 时,我制作了两个文件,我收到了这个错误:
"error":true,"message":"所需参数不可用"
这是我要从中获取数据的表的结构。
谁能帮我解决这个错误,我真的不知道如何解决它。
<?php
require_once 'connection.php';
$response = array();
if(isset($_GET['apicall'])){
switch($_GET['apicall']){
case 'signup':
if(isTheseParametersAvailable(array('username','email','password',))){
$username = $_POST['username'];
$email = $_POST['email'];
$password = md5($_POST['password']);
$stmt = $conn->prepare("SELECT user_id FROM ci_users WHERE username = ? OR email = ?");
$stmt->bind_param("ss", $username, $email);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows > 0){
$response['error'] = true;
$response['message'] = 'User already registered';
$stmt->close();
}
else{
$stmt = $conn->prepare("INSERT INTO ci_users (username, email, password,) VALUES (?, ?, ?, ?)");
$stmt->bind_param("ssss", $username, $email, $password);
if($stmt->execute()){
$stmt = $conn->prepare("SELECT user_id,id, username, email, FROM users WHERE username = ?");
$stmt->bind_param("s",$username);
$stmt->execute();
$stmt->bind_result($user_id, $id, $username, $email);
$stmt->fetch();
$user = array(
'id'=>$id,
'username'=>$username,
'email'=>$email,
);
$stmt->close();
$response['error'] = false;
$response['message'] = 'User registered successfully';
$response['user'] = $user;
}
}
}
else{
$response['error'] = true;
$response['message'] = 'required parameters are not available';
}
break;
case 'login':
if(isTheseParametersAvailable(array('username', 'password'))){
$username = $_POST['username'];
$password = md5($_POST['password']);
$stmt = $conn->prepare("SELECT user_id, username, email, mobile_no FROM ci_users WHERE username = ? AND password = ?");
$stmt->bind_param("ss",$username, $password);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows > 0){
$stmt->bind_result($id, $username, $email, $mobile);
$stmt->fetch();
$user = array(
'id'=>$id,
'username'=>$username,
'email'=>$email,
'mobile'=>$mobile
);
$response['error'] = false;
$response['message'] = 'Login successfull';
$response['user'] = $user;
}
else{
$response['error'] = false;
$response['message'] = 'Invalid username or password';
}
}
break;
default:
$response['error'] = true;
$response['message'] = 'Invalid Operation Called';
}
}
else{
$response['error'] = true;
$response['message'] = 'Invalid API Call';
}
echo json_encode($response);
function isTheseParametersAvailable($params){
foreach($params as $param){
if(!isset($_POST[$param])){
return false;
}
}
return true;
}
?>
解决方案
查看您提供的屏幕截图和 php 代码。您可能忘记在请求正文中发送三个帖子参数,即“用户名”、“电子邮件”、“密码”。在 api 端点中由函数 isTheseParametersAvailable 检查。如https://www.javatpoint.com/android-volley-library-registration-login-logout中所述。您的邮递员请求正文应如下所示。
推荐阅读
- excel - 如何在 Web 源代码中选择第 n 次出现
- reactjs - 反应本机 TouchableOpacity 不能与里面的图标一起工作
- json - json 数据的 D3.js 热图
- android - RecyclerView 高度展开和折叠?
- dependency-injection - 如果依赖项仅在单个方法中使用,我应该注入它还是使用服务位置?
- web-applications - 使用 TFS 2018 (TFVC) 处理带有 CI / CD 的 .net Web 应用程序
- javascript - 在 webview 中加载页面后,Javascript 调用 java 方法不能立即工作?
- c# - 带有 CosmosDBTrigger 的 Azure 函数似乎没有被 upserts 触发
- java-8 - 无法使用 Hibernate 5.3.5、Ehcache 3.5.2、jdk 8、wildfly 8 配置 ehcache
- openssl - keytool 无效的密钥库格式