У меня есть внутренняя ошибка сервера 500, каждый раз, когда я пытаюсь отправить запрос POST через Retrofit. Когда я отправляю GET-запрос, он правильно отправляет. Я уверен, что с серверами все в порядке. Что случилось с моим кодом?Модернизация: ошибка внутреннего сервера 500
String ENDPOINT = "http://52.88.40.210";
//model for request
FriendModel ff = new FriendModel();
ff.setFriendNumber("380935275259");
ff.setId(516);
ff.setNumber("380936831127");
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(ENDPOINT)
.build();
WayfAPI api = adapter.create(WayfAPI.class);
api.getFriendsLocation(ff, new Callback<List<FriendLocationModel>>() {
@Override
public void success(List<FriendLocationModel> friendLocationModels, Response response) {
for (FriendLocationModel ff : friendLocationModels) {
Log.d("myLogs", "===========Successful==========");
Log.d("myLogs", "Id: " + ff.getId());
Log.d("myLogs", "Number: " + ff.getNumber());
Log.d("myLogs", "GeoLocation: : " + ff.getGeoLocation());
}
}
@Override
public void failure(RetrofitError error) {
Log.d("myLogs", "-------ERROR-------");
Log.d("myLogs", Log.getStackTraceString(error));
}
});
}
Декларация запроса:
@Headers({
"Accept: application/json",
"Content-type: application/json"
})
@POST("/api/geo/getLoc")
public void getFriendsLocation(@Body FriendModel friendModel, Callback<List<FriendLocationModel>> response);
Exampe запроса и ответа от Почтальон:
Кажется, что в почтальоне вы отправляете массив FriendModel, но в своем коде вы отправляете один объект. Что ожидает сервер? –
@UdiI Thak вам за ответ, да, серверная сторона не может распознать один объект JSON. Я могу изменить serveride и научить его распознанному одиночному объекту JSON, но это плохая идея. Брак, больше запросов - больше ресурсов на серверах. Мне нужно знать, как я могу отправить запрос с массивом объектов JSON через Retrofit. – neustart47