Работа с HTTP запросами
В интерфейс помимо параметров запроса должны передаваться сущности для обработки ответа. Обработка ответа должна быть вынесена в отдельный класс, представляющий возможности для обработки ошибок в запросах, а в случае их отсутствия методы для создания моделей для последующей передачи во view. Данный функционал уже реализован в presenter для каждого экрана. Presenter может вызвать нужный метод… Читать ещё >
Работа с HTTP запросами (реферат, курсовая, диплом, контрольная)
Все части приложения кроме обмена сообщениями реализованы с помощью HTTP запросов. Приложение должно обеспечивать работу с сетью полностью в отдельном потоке, не вызывая блокировки интерфейса.
По умолчанию в Android все операции происходят в основном потоке приложения, соответственно нам необходимо выделить отдельный поток для работы с сетью и создать очередь для выполнения запросов.
Запросы реализованы с помощью REST модели, в качестве формата данных, служащих для связи с сервером, используется JSON.
Соответственно необходимо реализовать следующую архитектуру: создать интерфейс для вызова концертных запросов, в котором должны быть описаны пути конкретных запросов, далее необходим отдельный Singleton класс, создающий объект для работы с интерфейсом, описанным ранее. Данный класс должен хранить базовый адрес сервера.
Рисунок 11. REST модель.
Singleton — это шаблон проектирования, гарантирующий, что порожденный объект будет создан в единственном экземпляре во время выполнения программы.
Рисунок 12. Singleton pattern.
В интерфейс помимо параметров запроса должны передаваться сущности для обработки ответа. Обработка ответа должна быть вынесена в отдельный класс, представляющий возможности для обработки ошибок в запросах, а в случае их отсутствия методы для создания моделей для последующей передачи во view. Данный функционал уже реализован в presenter для каждого экрана. Presenter может вызвать нужный метод интерфейса для работы с сетью, передав ему нужные параметры.
Каждый model класс содержит метод, позволяющий получить экземпляр модели из JSON строки. Таким образом работа с сетью полностью отделена от логики работы с экраном.
Также стоит отметить, что работа с комментариями — их отправка и обновление — реализуется через long polling запросы, соответственно интерфейс для работы с сетью должен учитывать возможность разного типа запросов.
Рисунок 13. Long polling.
Long polling — вид связи с сервером, при котором сервер вместо мгновенного ответа на запрос запускает цикл и на каждой итерации проверяет возникновение новой информации, в случае чего отправляет её клиенту.