Для школьного проекта мне нужно реализовать приложение чата с rest-api. До сих пор я сделал два просмотра с переключением на экран регистрации, где пользователь должен предоставить свои учетные данные и зарегистрироваться, но пока не повезло. Я не знаю почему, но он напрямую переходит к методу onFailure из нового Callback. Я новичок в модернизации и android может быть, это то, что я пропускаю. Я был бы признателен, если бы кто-то мог взглянуть.
registerActivity:
public void registerData(){
String userName = userNameField.getText().toString();
String password = passwordField.getText().toString().trim();
if(TextUtils.isEmpty((userName))){
Toast.makeText(this,"Please enter username", Toast.LENGTH_SHORT).show();
return;
}
if(TextUtils.isEmpty(password)){
Toast.makeText(this,"Please enter password", Toast.LENGTH_SHORT).show();
return;
}
//If validation is ok
Call<serverResponse> call = backendServiceClient.getInstance()
.getService()
.registerUser(userName,password);
call.enqueue(new Callback<serverResponse>() {
@Override
public void onResponse(Call<serverResponse> call, Response<serverResponse> response) {
String s = response.body().toString();
Toast.makeText(registerActivity.this, s, Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(Call<serverResponse> call, Throwable t) {
Toast.makeText(registerActivity.this, "Fehlgeschlagen", Toast.LENGTH_LONG).show();
}
});
}
Клиент, в котором я определяю base_url
private static final String BASE_URL = "http://palaver.se.paluno.uni-due.de";
private Retrofit retroInstance;
private static backendServiceClient servicesInstances;
private backendServiceClient(){
retroInstance = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
public static synchronized backendServiceClient getInstance(){
if(servicesInstances == null){
servicesInstances = new backendServiceClient();
}
return servicesInstances;
}
public backendServices getService(){
return retroInstance.create(backendServices.class);
}
класс, где у меня есть мой пост Запрос
@FormUrlEncoded
@POST("/api/user/register")
Call<serverResponse> registerUser(@Field("Username") String username,
@Field("Password") String password);
}
И, наконец, поскольку я знал, какой тип отката я могу получить, я добавил к нему класс
@SerializedName("MsgType")
@Expose
private Integer messageType;
@SerializedName("Info")
@Expose
private String info;
@SerializedName("Data")
@Expose
private Object data;
public Integer getMessageType() {
return messageType;
}
public String getInfo() {
return info;
}
public Object getData() {
return data;
}
Это структура, с которой сервер отвечает мне:
{"MsgType":1,"Info":"Benutzer
erfolgreich angelegt", "Data":null}
Я знаю, что это много, но, поскольку я новичок, я не знаю, где ошибка, и что действительно требуется, а что нет. Я очень расстроен, сейчас я сижу часами ...