Ошибка ответа объекта JSON

public void searchLoginInfo(View view) {
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, showUrl,null,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 username = user.getString("username").toLowerCase();
                    String password = user.getString("password".toLowerCase());
                    String retypedpassword = user.getString("retypedpassword");
                    String email = user.getString("email");
                    if (username.equals(myLoginList.get(0)) && password.equals(myLoginList.get(1))) {
                        Toast.makeText(LoginActivity.this, "Login Succesfull", Toast.LENGTH_LONG).show();
                        Intent send = new Intent(LoginActivity.this, WelcomeActivity.class);
                        startActivity(send);
                        break;
                    }else{
                        Toast.makeText(LoginActivity.this, "Login Failed!", Toast.LENGTH_LONG).show();
                        Intent send = new Intent(LoginActivity.this, LoginActivity.class);
                        startActivity(send);
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("Volley Error", error.toString());
            NetworkResponse networkResponse = error.networkResponse;
            if (networkResponse != null) {
                Log.e("Status code", String.valueOf(networkResponse.statusCode));
            }
        }
    });
    requestQueue.add(jsonObjectRequest);
}

Я использую объектный запрос JSON для получения информации из базы данных, которую я создал. Я могу с помощью своего приложения для Android вставить данные в базу данных, но теперь я хочу проверить, например, создал ли пользователь учетную запись пользователя. И файлы url, и файлы php работают нормально. Я использовал журнал в методе onErrorResponse, чтобы увидеть, что является настоящей ошибкой, и я получил это: E / Volley Error: com.android.volley.ParseError: org.json.JSONException: Value Соединение типа java.lang.String не может быть преобразован в JSONObject. Я не знаю, что, кажется, проблема с этим. Я также проверил с помощью postamn, возвращает ли мой веб-сервис данные json. Отпечаток экрана с данными json Кто- нибудь может мне помочь? заранее спасибо

2 ответа

Вместо JSONRequest пытаться StringRequest и проверьте, является ли ваш ответ действительным JSON или нет. JSONRequest пытается разобрать строку в JSONObject а затем возвращает, и это может произойти сбой, если ответ не, если тип JSON,

Вам нужно проверить, если ваш веб-сервис возвращает значения. Вы можете проверить это с помощью вашего навигатора или почтальона, например.

Другие вопросы по тегам