Замена для устаревших DefaultHttpClient

Я использую DefaultHttpClient в своем текущем приложении.

Я прочитал эту статью, в которой говорится, что DefaultHttpClient устарел: http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html

Он указывает на этот сайт: http://android-developers.blogspot.com/2011/09/androids-http-clients.html?m=1, который слишком стар и написан в 2011 году.

Я собираюсь отказаться от DefaultHttpClient и следовать этой статье, которая использует Apache HttpClient : http://loopj.com/android-async-http/

Интересно, правильно ли это сделать при программировании в 2015 году, ориентированном на API android 19 и выше.

Solutions Collecting From Web of "Замена для устаревших DefaultHttpClient"

Хорошо, я ждал неделю и так и делал все много исследований. Кажется, я нашел ответ.

Я настоятельно рекомендую начинающим и даже профессиональным программистам на Android знать о существовании очень полезной библиотеки под названием Retrofit:

Обширный документ присутствует на http://square.github.io/retrofit/

У переполнения стека также есть выборки для почти всего, что нужно сделать по сети, чтобы связаться с удаленной службой REST.

Лучше прекратить использование HttpURLConnection и AsyncTask. Retrofit работает быстрее и поддерживает все ситуации сбоя из коробки.

Помимо ссылки на этот блог, документы рекомендуют использовать URL.openConnection, который существует с уровня API 1.

альтернатива

Вы должны переключиться на HttpURLConnection . Это требует немного большего количества кода, но не так много. В SDK 22 они уже устарели HttpClient, и даже если вы нацеливаете SDK 19, при компиляции с 22 вы получаете предупреждения.

Просто спекуляция (теперь не могу найти источник для этого), но я думаю, что они не будут исправлять устаревшие библиотеки, поэтому любые проблемы или ошибки безопасности останутся незафиксированными.

Вариант 1: Волейбол

Android 1.6 (API Level 4) или выше

Преимущества волейбола:

  • Автоматическое планирование сетевых запросов.
  • Несколько одновременных сетевых подключений.
  • Прозрачное кэширование ответов на диск и память с согласованием стандартного HTTP-кэша.
  • Поддержка приоритизации запроса.
  • API запроса отмены. Вы можете отменить один запрос, или вы можете установить блоки или области запросов для отмены.
  • Простота настройки, например, для повторной попытки и отсрочки.
  • Сильный порядок, который позволяет легко заполнить ваш пользовательский интерфейс данными, полученными асинхронно из сети.
  • Инструменты отладки и трассировки.

Вариант 2: OkHttp

OkHttp поддерживает Android 2.3 и выше. Для Java минимальное требование – 1.7.

Некоторые из функций, перечисленных в его документации:

  • Поддержка HTTP / 2 и SPDY позволяет всем запросам одного и того же хоста совместно использовать сокет.
  • Пул соединений уменьшает время ожидания запроса (если SPDY недоступен).
  • Прозрачный GZIP уменьшает размеры загрузок.
  • Кэширование ответов полностью исключает сеть для повторных запросов.

Пришло время переключиться на OkHttp, который эффективно выполняет HTTP и ускоряет загрузку вашего материала и экономит пропускную способность. Он поддерживает как синхронные блокирующие вызовы, так и асинхронные вызовы с обратными вызовами.

OkHttp поддерживает Android 2.3 и выше.

Добавьте приведенную ниже зависимость к проекту Android.

 compile 'com.squareup.okhttp:okhttp:2.4.0'