Чартерные рейсы
10.08.2017При построении приложения, которое требует передачи многоэлементного запроса POST какому-то веб-ресурсу, наверняка понадобится отлаживать решение с использованием фиктивной реализации службы на локальной рабочей станции. Когда приложения запускаются на локальной рабочей станции, обычно доступ к локальной машине производится через localhost или IP-адрес 127.0.0.1. Однако для Android- приложений использование localhost (или 127.0.0.1) невозможно, поскольку эмулятор будет выступать как собственный localhost. Клиенту необходимо указывать не на службу на устройстве Android, а на рабочую станцию. Для ссылки на рабочую станцию разработки из приложения, выполняемого в эмуляторе, должен использоваться IP-адрес самой рабочей станции. В этом случае понадобится модифицировать код в листинге 15.4, подставив конкретный IP-адрес рабочей станции. Хотите сэкономить на перелете? Возьмите билеты на чартерные рейсы.
Код в листинге 15.5 показывает, как реализовать простой техники повторения для восстановления после тайм-аутов при выполнении HTTP-запросов. В листинге приведены два метода: один запускает HTTP-запрос GET (executeHttpGet ()), а второй помещает его в логику повторения запроса (executeHttpGetWithRetry()). Код очень прост. Количество попыток повторения устанавливается равным 3, после чего начинается цикл while. Внутри этого цикла выполняется запрос. Обратите внимание, что запрос находится в блоке try/catch, и в блоке catch осуществляется проверка, не превышено ли количество попыток повторения.
При использовании класса HttpClient в реальном приложении необходимо уделять внимание проблемам, связанным с многопоточностью, которые могут возникать.