Я вызываю почтовый запрос, который регистрирует пользователя. Я передаю три поля в API, включая имя, адрес электронной почты, пароль. Мой API находится на localhost.Response - это объект с именем 'response' и включает список формата String.Response:здесь:
{
"response": [
"sample string"
]
}
Когда я получаю ответ, всегда дайте мне 422
код состояния. Пока я проверяю его на Postman
, я даю 200
код состояния и правильный ответ. Фактически, когда я вхожувходные данные в правильном формате, я получаю нулевой ответ и программа не работает.Это APIClient
класс:
public class APIClient {
public static final String BASE_URL ="http://192.168.1.110:1996/api/";
private static Retrofit retrofit=null;
public static Retrofit getClient(){
if(retrofit==null){
retrofit=new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
Это APIInterface
:
@FormUrlEncoded
@POST("register")
Call<Sresponse>Register(@Field("name") String name,
@Field("email") String email,
@Field("password") String password);
Это Sresponse
модель:
public class Sresponse {
@SerializedName("response")
List<String> response;
public Sresponse(List<String> response) {
this.response = response;
}
public List<String> getResponse() {
return response;
}
public void setResponse(List<String> response) {
this.response = response;
}
@Override
public String toString() {
return "Sresponse{" +
"response=" + response +
'}';
}
}
И, наконец, этокод, где запрос вызова:
private void doRegister(){
APIInterface apiInterface= APIClient.getClient().create(APIInterface.class);
retrofit2.Call<Sresponse> call= apiInterface.Register(name,email,password);
call.enqueue(new Callback<Sresponse>() {
@Override
public void onResponse(Call<Sresponse> call, Response<Sresponse> response) {
if(response.isSuccessful()){
result=response.body();
Log.e("MA",result.toString());
}
}else if(response.code()== 422){
result=response.body();
Log.e("MA",result.getResponse().toString()+" code 422");
}
}
@Override
public void onFailure(Call<Sresponse> call, Throwable t) {
Log.e("MA",t.toString());
}
});
}