Не удалось получить response.body ()

Я пытаюсь создать форму входа и регистрации в Android с модификацией и okhttp3. Когда я нажимаю кнопку регистрации, данные успешно вставляются в мою базу данных, но мой тост не отображается, и он не направляется автоматически на страницу входа. Та же проблема с кнопкой входа в систему. Если я нажму кнопку входа в систему, это не приведет к переходу на другую страницу. С остальным API проблем нет. Я думаю, что проблема в Callback или response.body (). Я использую успокаивающий CodeIgniter.

Вот код:

mApiService.createUser(
            input_name.getText().toString(),
            input_lastname.getText().toString(),
            input_username.getText().toString(),
            input_email.getText().toString(),
            input_password.getText().toString(),
            input_phonenumber.getText().toString(),
            input_country.getSelectedItem().toString()
    )
            .enqueue(new Callback<ResponseBody>() {
                         @Override
                         public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                             if (response.isSuccessful()) {
                                 Log.i("debug", "onResponse: Successful");
                                 loading.dismiss();
                                 try {
                                     JSONObject jsonRESULTS = new JSONObject(response.body().string());
                                     if (jsonRESULTS.getString("error").equals("true")) {
                                         Toast.makeText(mContext, "Register Successful", Toast.LENGTH_SHORT).show();
                                         startActivity(new Intent(mContext, SignInActivity.class));
                                     } else {
                                         String error_message = jsonRESULTS.getString("error_msg");
                                         Toast.makeText(mContext, error_message, Toast.LENGTH_SHORT).show();
                                     }
                                 } catch (JSONException | IOException e) {
                                     e.printStackTrace();
                                 }
                             } else {
                                 Log.i("debug", "onResponse: Register Failed");
                                 loading.dismiss();
                             }
                         }

                         @Override
                         public void onFailure(Call<ResponseBody> call, Throwable t) {
                             Log.e("debug", "onFailure: ERROR > " + t.getMessage());
                             Toast.makeText(mContext, "Connection Failed", Toast.LENGTH_SHORT).show();

                         }
                     }
            );

А вот логарифм:

    content-type: application/json; charset=utf-8
05-17 11:02:24.263 23925-23955/com.example.user.pfmapp2 D/OkHttp: {"status":true,"message":"Registration Successfully, Please SignIn.","0":{"name":"test","lastname":"","username":"test","email":"[email protected]","password":"31a30b53d7faec7957e708dca6077e31","registration_date":"17-05-18","mobile_phone_number":"234124445","mobile_phone_number_code":"+1"}}
    <-- END HTTP (313-byte body)
05-17 11:02:24.283 23925-23925/com.example.user.pfmapp2 I/debug: onResponse: Register Failed
05-17 11:02:24.301 23925-23941/com.example.user.pfmapp2 D/EGL_emulation: eglMakeCurrent: 0xa7b18960: ver 2 0 (tinfo 0xa341c6e0)
05-17 11:02:24.321 23925-23941/com.example.user.pfmapp2 D/EGL_emulation: eglMakeCurrent: 0xa7b18960: ver 2 0 (tinfo 0xa341c6e0)

Попробуйте использовать FastAndroidNetworking. его легко понять и с ним учиться.

FroyoDevourer 17.05.2018 10:08
isSuccessful() проверяет, находится ли код состояния ответа в диапазоне [200, 300). Если вы ожидаете перенаправления, это означает, что вы получите код состояния 3xx, который находится за пределами этого диапазона, поэтому isSuccessful() возвращает false. Вы можете попробовать использовать клиент OkHttp с followRedirect, установленным на true.
user2340612 17.05.2018 15:55

Спасибо за ответ, ребята. Но не могли бы вы объяснить на примере?

Eas27 18.05.2018 03:21
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
77
1

Ответы 1

Вы должны проверить

response.code()

Чтобы проверить статус вашего запроса и дайте мне знать, чтобы помочь вам

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