2015-12-29 4 views
0

Когда я пытаюсь отправить 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; 
    } 

} 
+0

Конечная точка не возвращает json – Blackbelt

+0

, пожалуйста, отправьте строку json 'response' с сервера. кажется, ваш сервер отправляет неправильный ответ. Я не вижу ошибок в запросе на сервер. – Tauqir

+0

Написал строку ответа на вопрос. – Rafael

ответ

0

Как сказал Blackbelt, сервер был не реагирует с JSON, это ответ был из запроса на базу данных, которая возвращалась ошибка PHP.