После нажатия на логин ничего не происходит - PullRequest
0 голосов
/ 10 января 2019

Привет в коде ниже, у меня есть приложение для входа. В том, что содержит идентификатор электронной почты и пароль. Регистрация прошла успешно с использованием адреса электронной почты и пароля.

Теперь я беру идентификатор электронной почты и пароль, затем нажимаю на кнопку входа, просто проверяю, статус успешен или нет. Если статус успешен, то переходите к другому виду деятельности.

LoginActivity.java:

login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                emailId = et_email.getText().toString();
                password = et_password.getText().toString();
               getlogindetails(emailId, password);

            }
        });


    }

Method.java:

private void getlogindetails(String emailId, String password) {

        if (!validate(emailId)) {
            et_email.requestFocus();
            et_email.setError("Please provide a valid email Id");
            return;
        }
        if (password.isEmpty()) {
            et_password.requestFocus();
            et_password.setError("Please provide password");
            return;
        }
        if (!CheckWifiAndMobileData.IsConnected(LoginActivity.this)) {
            Toast.makeText(LoginActivity.this, "Please check your internet connection", Toast.LENGTH_SHORT).show();
            return;
        }
String url = "http://172.24.1.1:9000";

        Retrofit retrofit = null;
        Log.d("123", "retrofit");

        if (retrofit == null) {
            retrofit = new Retrofit.Builder().baseUrl(url).addConverterFactory(GsonConverterFactory.create()).build();
            Log.d("123", "build();");
        }
        API1 service = retrofit.create(API1.class);

        Call<Login> call = service.authenticate(this.emailId, password);
        Log.i(TAG, "Sending---" + url + service + "\n" + "light_id:" + this.emailId + "\n" + "intensity:" + password );

        //final String EmailId = emailId;
        call.enqueue(new Callback<Login>() {
            @Override
            public void onResponse(Call<Login> call, Response<Login> response) {
                String status=response.body().getStatus().toString();
                if (status.contains("success")) {
                    // showResponse(response.body().toString());
                    Toast.makeText(LoginActivity.this, "Login successfully", Toast.LENGTH_SHORT).show();
                    Intent mainIntent;
                  mainIntent = new Intent(LoginActivity.this, DeviceControlActivity.class);
                  mainIntent.putExtra("emailId", LoginActivity.this.emailId);
                 startActivity(mainIntent);
                 finish();
                }
                else{
                    Toast.makeText(LoginActivity.this, "Invalid EmailId and password", Toast.LENGTH_SHORT).show();
//
                }
            }

            @Override
            public void onFailure(Call<Login> call, Throwable t) {
                Log.e(TAG, "Unable to submit post to API.");
            }
        });
    }

API1.java

 interface API1 {

    @POST("app_login/")
        Call<Login> authenticate(@Path("emailId") String emailId, @Path("password") String password);
    }

1 Ответ

0 голосов
/ 10 января 2019

Почему вы используете @Path внутри интерфейса. Должно быть @Body или @Field

Не использовать @Path

 @POST("app_login/")
        Call<Login> authenticate(@Path("emailId") String emailId, @Path("password") String password);

Попробуйте использовать вот так, создайте Pojo для вашего запроса вот так

public class Request{
  private String emailId;
  private String password;
}

и используйте вот так

 @POST("app_login")
     Call<Login> authenticate(@Body Request data);

или

используйте вот так

@FormUrlEncoded
@POST("app_login")
    Call<Login> authenticate(@Field("emailId") String emailId, @Field("password") String password);

Примечание: - @Path используется, когда ваш API url меняется соответственно другому пользователю. Пример, вы выбираете данные в соответствии с идентификатором пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...