Я пишу приложение для Android и запускаю его на мобильном устройстве (версия Pie). И я использую библиотеку Volley для подключения к серверу.Когда я отправляю запрос на сервер (JsonArrayRequest), приложение входит в системуErrorRespons И сталкивается с этой ошибкой
com.android.volley.ParseError: org.json.JSONException: Value <html>
<body> <script of type java.lang.String cannot be converted to JSONArray
Вот пример кода сервера и Android, который я даже использовал этот код в заголовке сервера ('СодержаниеТип: application / json ');но я все еще получаю ту же ошибку
Вы можете использовать эту ссылку для просмотра контента http://alibaba.gigfa.com/getcity.php
Спасибо за ваши усилия, друзья
php:
<?php
include "connect.php";
$query="SELECT * FROM city";
$res=$connect->prepare($query);
$res->execute();
$products=array();
while($row=$res->fetch(PDO::FETCH_ASSOC)){
$record=array();
$record["id"]=$row["id"];
$record["title"]=$row["city"];
$products[]=$record;
}
echo json_encode($products);
?>
Java:
JsonArrayRequest jsonArrayRequest = new
JsonArrayRequest(Request.Method.GET, URL, null, new
Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.e("Adrom Response1: ", response.toString());
for (int i = 0; i < response.length(); i++) {
try {
JSONObject jsonObject = response.getJSONObject(i);
String city = jsonObject.getString("title");
cities.add(city);
} catch (JSONException e) {
Log.e("Adrom Response2: ", e.toString());
e.printStackTrace();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Adrom Response3: ", error.toString());
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonArrayRequest);