Итак, я работаю над приложением android, которое извлекает данные из базы данных MySQL на сервере xampp. Вот код из андроида магистрали,Сообщение об ошибке jsonObjectRequest равно
Button scanButton = (Button) findViewById(R.id.scanButton);
String findUrl = "http://myIPaddress/webservice/findItem.php";
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
scanButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
JsonObjectRequest jsonObjectrequest = new JsonObjectRequest(Request.Method.POST,
findUrl, new Response.Listener<JSONObject>(){
@Override
public void onResponse(JSONObject response){
try{
//retrieve the items table from the database
JSONArray items = response.getJSONArray("items");
int i = 2;
//retrieve the 3rd row in the table
JSONObject item = items.getJSONObject(i);
String name = item.getString("name");
//send a LogCat message containing the name of the row
Log.d("name",name);
} catch(JSONException e){
e.printStackTrace();
}
}
}, new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
//in case of an error, send a logcat message containing the error
Log.d("error","" + error.getMessage());
}
});
requestQueue.add(jsonObjectrequest);
}
});
}
РНР скриптов находятся в папке WebService, которая находится в папке HTDOCS папки XAMPP. Вот сценарий для connection.php (объявляет и устанавливает соединение для базы данных),
<?php
define('hostname', 'localhost');
define('user','root');
define('password','');
define('databaseName','webservice');
$connect = mysqli_connect(hostname, user, password, databaseName);
?>
и сценарий для findItem.php (возвращает «элементы» таблицы из базы данных «WebService» в моем местном host phpmyadmin),
<?php
if($_SERVER["REQUEST_METHOD"]=="POST"){
include 'connection.php';
showItem();
}
function showItem(){
global $connect;
$query = "Select * FROM ITEMS";
$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("items"=>$temp_array));
mysqli_close($connect);
}
?>
Ошибка, с которой я сталкиваюсь, происходит во время выполнения. Когда я нажимаю кнопку в своем эмуляторе Android, сообщение logcat не является именем из третьей строки таблицы «items». Появляется сообщение об ошибке, но ошибка заканчивается нулевым. Мой вопрос в основном может быть причиной этого? Я убедился, что скрипты php находятся в правильном месте (xampp/htdocs/webservice), правильный IP-адрес, серверы xampp для apache и mysql включены, права доступа были записаны в файле манифеста Android и В базе данных под названием «webservice» существовала таблица «items» с не менее чем тремя строками. Любая обратная связь приветствуется, спасибо заранее.