У меня проблема с вызовом API обновления, когда я вызываю api, это сообщение об успешном показе, но выполнение прерывается из call.enqueue
метода, я не знаю, где я ошибаюсь.
Это мой Api url
Мой URL
https://56aba649.ngrok.io/api/update
Мой класс интерфейса
public interface Api {
@FormUrlEncoded
@POST("update")
Call<Message> updateUser( @Field("id") String id,
@Field("username") String username,
@Field("email") String email,
@Field("password") String password);
}
Класс моей модели
public class user {
@SerializedName("id")
@Expose
private String id;
@SerializedName("username")
@Expose
private String username;
@SerializedName("email")
@Expose
private String email;
@SerializedName("password")
@Expose
private String password;
public user(String id, String username, String email, String password) {
this.id = id;
this.username = username;
this.email = email;
this.password = password;
}
public String getId() {
return id;
}
public String getUsername() {
return username;
}
public String getEmail() {
return email;
}
public String getPassword() {
return password;
}
public void setId(String id) {
this.id = id;
}
когда я отлаживаю код, до call.enqueue(new Callback<Message>()
этой строки после выполнения этой строки прерывается
но сообщение Sucess Toast печатается я не знаю, как это будет успешно сообщение без успешного вызова
MainActivity класс
private void updateUser(){
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Updating...");
progressDialog.show();
String id = (ed1.getText().toString().trim());
String email = ed2.getText().toString().trim();
String username = ed3.getText().toString().trim();
String password = ed4.getText().toString().trim();
Api service = RetroClient.getApiService();
user usr = new user(id,email,username,password);
Call<Message> call = service.updateUser(
usr.getId(),
usr.getUsername(),
usr.getEmail(),
usr.getPassword());
call.enqueue(new Callback<Message>() {
@Override
public void onResponse(Call<Message> call, Response<Message> response) {
progressDialog.dismiss();
Toast.makeText(Main2Activity.this,"Sucess",Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(Call<Message> call, Throwable t) {
progressDialog.dismiss();
Toast.makeText(Main2Activity.this,"fail", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onClick(View view) {
if (view == btn1){
updateUser();
}
}