#php #android #server #android-volley
Вопрос:
я использовал volley и получаю данные json с сервера. это работает хорошо, но когда я получаю данные с сервера в журнале Android studio, данные хорошо принимаются в виде json. подобный этому
{«read»:[{«id»:»pp»,»time»:»3″,»content»:»3″},{«id»:»pp»,»time»:»22″,»content»:»2″},{«id»:»pp»,»time»:»11″,»content»:»1″},{«id»:»z»,»time»:»12.12″,»content»:»снова грудь!»}],»успех»:»1″}
но я ввел URL-адрес сервера(когда существует php-код) в браузере и вошел туда, там нет данных из бд, просто отображается как
{«прочитано»:[],»успех»:»1″}
вот код java
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_list, new Response.Listenerlt;Stringgt;() { @Override public void onResponse(String response) { System.out.println(response); Log.e(TAG, response.toString()); try { JSONObject jsonObject = new JSONObject(response); String success = jsonObject.getString("success"); JSONArray jsonArray = jsonObject.getJSONArray("read"); if (success.equals("1")) { for (int i = 0; i lt; jsonArray.length(); i ) { JSONObject object = jsonArray.getJSONObject(i); String id = object.getString("id").trim(); String time = object.getString("time").trim(); String content = object.getString("content").trim(); adapter.addItem(id, time, content); adapter.notifyDataSetChanged(); } } } catch (JSONException e) { e.printStackTrace(); Toast.makeText(listActivity.this, "Error Reading Detail : " e.toString(), Toast.LENGTH_SHORT).show(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(listActivity.this, "Error Reading Detail : " error.toString(), Toast.LENGTH_SHORT).show(); } }) { @Override protected Maplt;String, Stringgt; getParams() throws AuthFailureError { Maplt;String, Stringgt; params = new HashMaplt;gt;(); params.put("gymName", gymName); return params; } }; RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(stringRequest);
вот php — код на сервере
lt;?php $con = mysqli_connect("localhost", "db", "pw", "user"); mysqli_query($con,'SET NAMES utf8'); $gymName = $_POST["gymName"]; $sql = "SELECT * FROM test where gymName = '$gymName' ORDER BY num desc"; $response = mysqli_query($con, $sql); $result = array(); $result['read'] = array(); while($row = mysqli_fetch_assoc($response)){ $h['id'] = $row['id']; $h['time'] = $row['time']; $h['content'] = $row['content']; array_push($result['read'], $h); } $result['success'] = "1"; echo json_encode($result); ?gt;
почему это происходит? пожалуйста, помогите
я думаю, что в php-коде, получающем данные из бд и реализующем код echo json_encode, должны ли отображаться данные бд в URL? я думаю, что браузер показывает данные json, и Android получает эти показанные данные, я ошибаюсь?. мне просто любопытно, как получить данные json с сервера в Android studio
Комментарии:
1. Для меня непонятно, в чем ваша проблема. Сначала вы говорите, что данные хорошо получены. И затем, что вы печатаете что-то, что портит его. Я понятия не имею, почему вы печатаете и что вы печатаете, где и почему вы не можете использовать текст tje json, который вы хорошо получили.
2. Переменная $gymName-это переменная данных post. Я думаю, что вам нужны данные для публикации в URL-адресе, чтобы просмотреть данные в браузере.
3. я думаю, что в php-коде, получающем данные из бд и реализующем код echo json_encode, должны ли отображаться данные бд в URL? я думаю, что браузер показывает данные json, и Android получает эти показанные данные, я ошибаюсь?. мне просто любопытно, как получить данные json с сервера в Android studio