EDIT: 20020-20020/practise.mysql_php_json I/System.out: org.json.JSONException: Значение уш типа java.lang.String не может быть преобразован в JSONObjectww является сообщение в терминале, которое я получаю.Не получая ответ JSON с Android App
Я работаю над тем, чтобы получить простую вставку и получить приложение для работы в android, выполнив руководство по youtube. Должно быть довольно просто, и я могу опубликовать информацию о пользователе в онлайн-базе данных, но когда я иду, чтобы получить ее, ничего не происходит. Не получить никаких ошибок, просто не получив ответа в 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);
}
?>
Теперь вот мой 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);
}
});
Что вы получаете при вызове showUsers.php в своем браузере? любые ошибки? – Jeff
Попробуйте установить тип контента: http://stackoverflow.com/questions/4064444/returning-json-from-a-php-script –
Джефф, не получив никаких ошибок. На экране ничего не отображается. Хотя я только что заметил в журнале cat, я получаю 20020-20020/practise.mysql_php_json I/System.out: org.json.JSONException: Значение
ZWis212