gpt4 book ai didi

php - Android 应用程序未获得 JSON 响应

转载 作者:行者123 更新时间:2023-11-30 22:28:12 25 4
gpt4 key购买 nike

编辑:20020-20020/practise.mysql_php_json I/System.out:org.json.JSONException:java.lang.String 类型的值 br 无法转换为 JSONObjectww是我收到的终端消息。

我正在努力按照 youtube 上的教程获得一个简单的插入和检索应用程序以在 android 中工作。应该相当简单,我可以将用户信息发布到在线数据库,但是当我去检索它时,没有任何反应。没有收到任何错误,只是没有收到任何 JSON 响应。

我刚刚开始同时使用 JSON 和 php,所以我不知道我是没有得到什么还是遗漏了一些小东西。

这是我的 connection.php,我知道我的凭据是正确的,因为我可以插入。

<?php

define('hostname', '--------');
define('user', '---------');
define('password', '-------');
define('database', '------------------');

$connect = mysqli_connect(hostname, user, password, database);

?>

这是我的insertUser.php

<?php

if($_SERVER["REQUEST_METHOD"]=="POST") {
require 'connection.php';
createUser();
}

function createUser() {
global $connect;

$name = $_POST["name"];
$email = $_POST["email"];
$password = $_POST["password"];

$query = " Insert into user_table(user_name, user_email, user_password) values ('$name','$email','$password');";

mysqli_query($connect, $query) or die (mysqli_error($connect));
mysqli_close($connect);
}

?>

这是我的showUsers.php

<?php

if($_SERVER["REQUEST_METHOD"]=="GET"){
include 'connection.php';
showStudent();
}
function showStudent()
{
global $connect;

$query = " Select * FROM users; ";

$result = mysqli_query($connect, $query);
$number_of_rows = mysqli_num_rows($result);

$temp_array = array();

if($number_of_rows > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$temp_array[] = $row;
}
}

header('Content-Type: application/json');
echo json_encode(array("users"=>$temp_array));
mysqli_close($connect);

}

?>

现在这是我在 Main Activity 中的 Android 应用程序代码。这应该只是获取我数据库中用户的姓名、电子邮件和密码。我有另一个 onclick 方法来插入用户。

showButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
JsonObjectRequest jsonObjectRequest; = new JsonObjectRequest(Request.Method.GET, showURL, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray users = response.getJSONArray("users");
for(int i=0; i<users.length(); i++) {
JSONObject user = users.getJSONObject(i);
String name = user.getString("user_name");
String email = user.getString("user_email");
String password = user.getString("user_password");

results.append(name);
}

results.append("\n");

} catch (JSONException e) {
e.printStackTrace();
}
}

}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {

}
});

requestQueue.add(jsonObjectRequest);
}
});

最佳答案

您的 PHP 脚本出现错误。第一步是打开你的错误报告,所以把下面的代码放在你打开的正下方 <?php标签:

ini_set('display_errors', 1);
error_reporting(-1);

这将向您显示错误。现在阅读评论,您的查询似乎失败了。

在尝试获取结果之前,您应该检查查询以确保它确实成功。

$query = " Select * FROM users; ";

$result = mysqli_query($connect, $query);
// this checks if query failed and prints error.
if(!$result){
die("SQL Error: ". mysqli_error($connect));
}
// will only get here if your query runs successfully.
$number_of_rows = mysqli_num_rows($result);
///... rest of your code...

现在,让我们知道您遇到了哪些错误,以及您是否设法修复了这些错误。我会在您回复时更新此答案。

关于php - Android 应用程序未获得 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34644470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com