Детская кровать карета

14.08.2017

Мы описали, как настроить общий пул соединений HTTP для применения в рамках приложения. Подразумевается, что при каждом использовании соединения будут применяться различные настройки, отражающие специфические потребности. Но что если для отдельного сообщения нужны другие настройки? К счастью, существует простой способ сделать это. Ранее было показано, как использовать объект HttpGet или HttpPost для описания запроса, который должен быть выдан через сеть. Аналогично тому, как устанавливается объект HttpParams в HttpClient, можно установить HttpParams для обоих объектов HttpGet и HttpPost. Настройки, применяемые на уровне сообщения, будут переопределять настройки на уровне HttpClient. В листинге 15.8 показано, как установить для отдельного запроса тайм-аут сокета в 1 минуту вместо 4 секунд. Эти строки кода должны заменять собой строки в блоке try метода getHttpContent() в листинге 15.7.

Использование HttpURLConnection

В Android предлагается еще один способ работы со службами HTTP, при котором используется класс java.net.HttpURLConnection. Это мало чем отличается от рассмотренных выше классов HttpClient, но для достижения цели HttpURLConnection, как правило, требует написания большего числа операторов. С другой стороны, этот класс намного меньше и облегченней, чем HttpClient. Начиная с выпуска Android 4.0, он также и довольно устойчив, поэтому вы должны применять его в приложениях на новых устройствах, когда нужны просто базовые функции HTTP и требуется получить компактное приложение. Возможно вам понадобится детская кровать карета.

После получения экземпляра AndroidHttpClient нельзя ни модифицировать настройки параметров в нем, ни добавлять к нему новые настройки параметров (такие как, например, версия протокола HTTP). Допускается только переопределять настройки внутри объекта HttpGet, как было показано ранее, или вообще не пользоваться AndroidHttpClient.

На этом обсуждение использования служб HTTP с классом HttpClient завершено. В последующих разделах внимание будет переключено на другую интересную часть платформы Android: написание фоновых/длительно выполняющихся служб. Хотя это сразу и не очевидно, но процессы выдачи HTTP-запросов и написания служб Android связаны в том аспекте, что будет производиться немало работы по интеграции с этими службами. Возьмем, к примеру, простое приложение почтового клиента. На устройстве с Android приложение такого типа, как правило, состоит из двух частей: одна часть предоставляет пользовательский интерфейс, а другая отвечает за опрос почтовых сообщений. Скорее всего, опрос будет осуществляться внутри фоновой службы.








Нас выбрали

partners3