Когда я использую Retrofit для вызова Login API, я сталкиваюсь с небольшой проблемой: тело ответа пустое.И ответное сообщение содержит это сообщение:
"Ответ {протокол = http / 1.1, код = 200, сообщение = ОК, URL = http://gagron.com/api/login.php}"
интерфейс класса
public interface getLoginDataService {
public String BaseURL = Constants.mBase_Url;
@FormUrlEncoded
@POST(Constants.mLogin)
Call<UserModel> login(@Field("email") String email, @Field("password") String password);
}
Метод входа в систему
public void loginConnector(String email, String password) {
Retrofit retrofit = new Retrofit.Builder().baseUrl(Connectors.getLoginDataService.BaseURL)
.addConverterFactory(GsonConverterFactory.create(new Gson())).build();
Connectors.getLoginDataService getLoginDataService = retrofit.create(Connectors.getLoginDataService.class);
getLoginDataService.login(email, password).enqueue(new Callback<UserModel>() {
@Override
public void onResponse(Call<UserModel> call, Response<UserModel> response) {
UserModel model= response.body();
Log.i("Successmsg", "" + response.toString());
Log.i("Successmsg1", "" + model.getFirstName());
;
}
@Override
public void onFailure(Call<UserModel> call, Throwable t) {
Log.i("Errormsg", t.getMessage() + "");
}
});
}
И, наконец, пользовательская модель, учитывающая Ответ.
Класс UserModel
public class UserModel {
@SerializedName("FirstName")
@Expose
private String firstName;
@SerializedName("LastName")
@Expose
private String lastName;
@SerializedName("Email")
@Expose
private String email;
@SerializedName("Mobile")
@Expose
private String mobile;
@SerializedName("Gender")
@Expose
private String gender;
@SerializedName("Password")
@Expose
private String password;
@SerializedName("Salt")
@Expose
private String salt;
@SerializedName("Address")
@Expose
private String address;
@SerializedName("PostalCode")
@Expose
private String postalCode;
@SerializedName("DateOfBirth")
@Expose
private String dateOfBirth;
@SerializedName("role")
@Expose
private String role;
@SerializedName("newsletter")
@Expose
private String newsletter;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSalt() {
return salt;
}
public void setSalt(String salt) {
this.salt = salt;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPostalCode() {
return postalCode;
}
public void setPostalCode(String postalCode) {
this.postalCode = postalCode;
}
public String getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(String dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getNewsletter() {
return newsletter;
}
public void setNewsletter(String newsletter) {
this.newsletter = newsletter;
}
}