Я пытаюсь решить эту ошибку, но не могу найти решение, чтобы решить мою проблему, так как я перепробовал все приведенные ссылки, поэтому я должен прийти сюда.
Я пытаюсь зарегистрировать пользователя, но не могу. Пожалуйста, помогите мне, поскольку эта проблема уже заняла весь мой день. Заранее спасибо.
Мой ApiClient. Java здесь
public class ApiClient {
private static final String BASE_URL = "http://IPAdress/foldername/";
private static Retrofit retrofit = null;
private static Gson gson = new GsonBuilder()
.setLenient()
.create();
public static Retrofit getApiClient(){
if (retrofit==null){
retrofit=new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
return retrofit;
}
Пользователь. Java класс
public class User {
@SerializedName("response")
private String Response;
@SerializedName("name")
private String Name;
public String getResponse() {
return Response;
}
public String getName() {
return Name;
}
MainActivity
public static SessionManager sessionManager;
EditText Name, Email, Password;
Button btn_register, btn_login;
String name, email, password;
Boolean CheckEditText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
sessionManager = new SessionManager(this);
//if the user is already logged in we will directly start the Profile Fragment
if (sessionManager.readLoginStatus()) {
startActivity(new Intent(this, ProfileFragment.class));
finish();
}
Name = findViewById(R.id.username);
Email = findViewById(R.id.useremail);
Password = findViewById(R.id.userpassword);
btn_register = findViewById(R.id.btnRegister);
btn_login = findViewById(R.id.btnLinkToLoginScreen);
btn_register.setOnClickListener(v -> {
CheckEditTextIsEmptyOrNot();
if (CheckEditText) {
registration();
} else {
Toast.makeText(RegisterActivity.this, "Please fill all form fields.", Toast.LENGTH_SHORT).show();
}
});
btn_login.setOnClickListener(v -> {
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
startActivity(intent);
});
}
public void CheckEditTextIsEmptyOrNot() {
name = Name.getText().toString().trim();
email = Email.getText().toString().trim();
password = Password.getText().toString().trim();
// Checking whether EditText value is empty or not.
// If any of EditText is empty then set variable value as False.
// If any of EditText is filled then set variable value as True.
CheckEditText = !TextUtils.isEmpty(name) && !TextUtils.isEmpty(email) && !TextUtils.isEmpty(password);
}
private void registration() {
ApiInterface apiInterface = ApiClient.getApiClient().create(ApiInterface.class);
Call<User> call = apiInterface.performRegistration(name, email, password);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(@NonNull Call<User> call, @NonNull Response<User> response) {
assert response.body() != null;
switch (response.body().getResponse()) {
case "ok":
RegisterActivity.sessionManager.displayToast("Registration Success...");
break;
case "exist":
RegisterActivity.sessionManager.displayToast("User Already Exist...");
break;
case "error":
RegisterActivity.sessionManager.displayToast("Something Went Wrong...");
break;
}
}
@Override
public void onFailure(@NonNull Call<User> call, @NonNull Throwable t) {
Log.d("onFailure", t.toString());
Toast.makeText(RegisterActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
Вот JSON Я получаю