Когда я пытаюсь отправить ArrayList < с помощью @POST на Retrofit 2 на мой веб-сервер, ArrayList <> сохраняется в базе данных, но на Android журнале я получаю следующее сообщение об ошибке:Ошибка отправки ArrayList через POST при дооснащении Ожидаемый BEGIN_ARRAY, но был STRING в строке 1 столбец 1
java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $
Я видел некоторые вопросы здесь, на SO, но я не мог заставить его работать, но я новичок и любопытное потерял.
Это ArrayList:
ArrayList<ModelContact> listContact = new ArrayList<>();
ModelContact c = new ModelContact("5", "OFF", "Test", "12134567", "14646", "[email protected]", "Adress");
listContact.add(c);
c = new ModelContact("6", "ON", "Test2", "12123456", "14646", "[email protected]", "Adress");
listContact.add(c);
Это мой дооснащения Вызов
Call<List<ModelContact>> callM = contactInterface.createRContact(listContact);
callM.enqueue(new Callback<List<ModelContact>>() {
@Override
public void onResponse(Response<List<ModelContact>> response, Retrofit retrofit) {
Log.i("TAG", "Success");
}
@Override
public void onFailure(Throwable t) {
Log.i("TAG", "Error: " + t.getMessage());
}
});
И это мой интерфейс:
public interface ContactInterface {
@GET("recieve")
Call<List<ModelContact>> getRContact();
@POST("send")
Call<List<ModelContact>> createRContact(@Body ArrayList<ModelContact> modelContact);
}
ответ сервера, когда я делаю запрос:
[{"id":"13","status":"ON","name":"Test","phone":"123","phone2":"1237855","email":"[email protected]","address":"adsfasd"},{"id":"14","status":"OFF","name":"Test","phone":"123","phone2":"125453","email":"[email protected]","address":"adsfasd"}]
ModelContatc класс:
public class ModelContact {
String id;
String status;
String name;
String phone;
String phone2;
String email;
String address;
public ModelContact(String id, String status, String name, String phone, String phone2, String email, String address) {
this.id = id;
this.status = status;
this.name = name;
this.phone = phone;
this.phone2 = phone2;
this.email = email;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getName() {
return name;
}
public void setName(String nome) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String phone2() {
return phone2;
}
public void setPhone2(String phone2) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Конечная точка не возвращает json – Blackbelt
, пожалуйста, отправьте строку json 'response' с сервера. кажется, ваш сервер отправляет неправильный ответ. Я не вижу ошибок в запросе на сервер. – Tauqir
Написал строку ответа на вопрос. – Rafael