Типобезопасный HTTP-клиент для Android и Java. Это упрощает получение JSON или других структурированных данных.
Сегодня мы собираемся разработать простое приложение, которое выполняет простые HTTP-запросы GET к серверу и извлекает объекты JSON в ответ.
Начнем с создания проекта в Android Studio.
- Как обычно создаем андроид проект
- Откройте уровень приложения build.gradle и добавьте такие зависимости Retrofit, Gson.
3. Теперь добавьте разрешение ИНТЕРНЕТ в файл AndroidManifest.xml.
4. Затем мы попытаемся получить эти данные JSON с сервера.
Https://jsonplaceholder.typicode.com/posts
Мы собираемся использовать фиктивные данные с указанного выше сайта.
5. Теперь создайте класс модели, подобный этому Post.java.
Имена переменных должны совпадать с именами ключей JSON.
например Имя ключа JSON «userId», имя переменной должно быть «int userId»
Что, если я хочу использовать другое имя?
Да, можно. просто используйте аннотацию, предоставленную Retrofit ‘@SerializedName (« body »)’
6. Затем создайте интерфейсный файл JsonPlaceHolderApi.java. Этот интерфейс объявляет метод getPosts ().
Вот базовый URL https://jsonplaceholder.typicode.com/
и это наш относительный URL https://jsonplaceholder.typicode.com/ сообщения
специальные аннотации модернизации для кодирования деталей о параметрах и методе запроса
7. Разработайте пользовательский интерфейс MainActivity.xml.
7. Последний шаг. В методе onCreate () для MainActivity.java создайте дескриптор для интерфейса RetrofitInstance.
Получить результаты из асинхронных запросов - фоновый рабочий запрос.
Использование асинхронных запросов заставляет вас реализовать Callback
с двумя его методами обратного вызова: onResponse()
и onFailture()
.
Активировать onResponse () при успешном получении ответа от сервера.
Активировать onFailture (), если URL-адрес недействителен или URL-адрес окончательно удален.
Следующий фрагмент кода иллюстрирует примерную реализацию.
8. Теперь запустите кнопку запуска.
Наконец, вы увидите красивый список текстовых данных.
Получите полную версию проекта на GitHub.
Предложения приветствуются!