Как в Android получить данные с сервера с помощью Retrofit

Обсуждение статей из раздела Блог
Ответить
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Как в Android получить данные с сервера с помощью Retrofit

Сообщение damager82 » 25 окт 2017, 00:15

 
Retrofit - популярная и удобная библиотека, которая используется, если приложению необходимо работать с сервером. В этой статье я на очень простом примере рассмотрю основы работы с ней.


Click here to read this article!
Последний раз редактировалось damager82 18 апр 2018, 14:35, всего редактировалось 25 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Chudovishe
Сообщения: 2
Зарегистрирован: 04 янв 2018, 03:16

Re: Как в Android получить данные с сервера с помощью Retrof

Сообщение Chudovishe » 04 янв 2018, 03:27

Здравствуйте!!! Простите если глупый вопрос =(

Сделал (кажется) всё, как написано.

С базовой точкой https://rawgit.com/startandroid/data/master/messages/ и запросом messages1.json

Получил ответ от сервера...

...напечатал в лог размер полученного массива командой Log.d(TAG, "Response.body().size()=" + response.body().size());

получил

"Response.body().size()=50"

А вот при попытке напечатать элемент полученного массива вот такой командой Log.d(TAG, "Response.body(0)=" + response.body().get(0));

получаю

"Response.body(0)=com.example.myapplication.Message@6d44e66"

вместо

"Response.body(0)={"id":1,"time":1454166946000,"text":"rhoncus dui vel sem sed sagittis nam congue risus semper porta volutpat quam pede lobortis ligula sit amet eleifend pede"}"


Почему так? Я уже перепробовал со своего сервера по разному отдавать json, и вместо списка передавать один массив, но всегда у меня в результате вместо строки с JSON "завернутым" массивом - всегда om.example.myapplication.Message@[абракадабра]

Спасибо большое за помощь!!

Chudovishe
Сообщения: 2
Зарегистрирован: 04 янв 2018, 03:16

Re: Как в Android получить данные с сервера с помощью Retrof

Сообщение Chudovishe » 04 янв 2018, 18:13

Извиняюсь!!!! Сам разобрался!!

Чтобы написать полученный массив в лог нужно прбежаться по body() в цикле

for (int x = 0; x < response.body().size(); x = x + 1) {
Log.d(TAG, "Response.body.get(0)=" + response.body().get(x));
Log.d(TAG, "id" + response.body().get(x).getId());
Log.d(TAG, "time" + response.body().get(x).getTime());
Log.d(TAG, "text" + response.body().get(x).getText());
Log.d(TAG, "image" + response.body().get(x).getImage());
},

где getId(), getTime(), getText() и getImage() - функции класса получаемых с сервера JSON объёктов

waat
Сообщения: 17179
Зарегистрирован: 31 окт 2020, 05:30

Re: Как в Android получить данные с сервера с помощью Retrofit

Сообщение waat » 15 ноя 2020, 18:54


Ответить