URLConnection или HTTPClient: что обеспечивает лучшую функциональность и эффективность?

Я хочу создать форму входа для приложения Android. Я хочу использовать метод post для отправки информации на серверную сторону, где она является дескриптором файла PHP; который, в свою очередь, проверяет параметры и отправляет ответ.

Я просматриваю реализации с использованием HttpClient и URLConnection, они очень похожи. Что более эффективно для использования в приложении Android?

Спасибо, Fabii

Я считаю, что в этом случае все зависит от того, какой API вы считаете более естественным. Как правило, HTTPClient более эффективен внутри приложения на стороне сервера (или, возможно, пакетного приложения), поскольку он позволяет указать многопоточный пул соединений с максимальным количеством общих подключений и максимальным количеством подключений к хосту (что обеспечивает одновременные подключения к один и тот же узел не сериализуется (проблема с HttpUrlConnection)). Но в приложении для Android вы, вероятно, будете создавать только одно соединение за раз, так что это не имеет значения.

Я немного поработал над этим, я давно использую Apache HttpClient в Android. Это выглядело естественным выбором для меня и подумало, что со временем оно будет улучшено.

С другой стороны, когда я разрабатывал для старого BlackBerryOS, я использовал HttpUrlConnection.

Для меня было очевидно, что производительность BB была лучше, чем Android в контексте сетей.

HttpClient – это полностью функциональный, но плохой class, который предоставляет огромный набор API / методов. Его можно использовать для создания полнофункционального WebBrowser для Android. Но у него есть некоторые проблемы с более старой версией Android, и он не активно участвует Google.

В то время как HttpUrlConnection имеет довольно полезный API, который просто полезен для разработки сетевого клиентского приложения. Он улучшил кэширование ответов и улучшил технологию сжатия на Android 2.3 и выше. Он возобновляется при создании сетевого клиентского приложения.

«Apache HTTPClient имеет меньше ошибок в Eclair и Froyo. Это лучший выбор для этих выпусков.

Для Gingerbread и лучше, HttpURLConnection – лучший выбор. Его простой API и небольшие размеры делают его очень подходящим для Android. Прозрачное сжатие и ответное кэширование уменьшают использование сети, улучшают скорость и экономят батарею. Новые приложения должны использовать HttpURLConnection; именно там Google будет тратить свою энергию вперед ».

См. Подробности

http://android-developers.blogspot.in/2011/09/androids-http-clients.html

Согласно команде андроида, вы должны использовать HttpURLConnection на Gingerbread и лучше, так как именно там они начнут новые усилия по разработке.

http://android-developers.blogspot.de/2011/09/androids-http-clients.html

Изменить: В эти дни я нашел okhttp by Square, который включает поддержку SPDY и автоматические повторы: https://github.com/square/okhttp

Если вы не пытаетесь отправлять и получать большие файлы, я бы предложил HttpClient.
Гораздо проще начать работу и использовать, и в Интернете есть гораздо больше рабочих примеров.

ПРИМЕЧАНИЕ. Это HttpClient отличается от HTTPClient (примечание), что является другой реализацией поставщика.

Хотя тег специально предназначен для Android, в целом HttpURLConnection также является лучшим выбором, когда речь идет о приложениях Java EE, поскольку он будет использовать стек HTTP, который поставляется с сервером приложений, который включает в себя настройку сертификатов HTTPS на уровне сервера приложений, а не код.

Он также позволит вам получить последнюю версию SSL, предоставленную стеком сервера приложений, вместо того, чтобы застрять в старой версии httpclient, которая может не работать с TLS 1.2

Обычно я рекомендую URLConnection потому что он может быть обновлен с помощью JDK. В одном случае у нас был вызов, который использовал более старую версию HTTP-клиента, которая не поддерживала TLS v1.2.

Однако я бы не использовал URLConnection напрямую, я бы обычно использовал API более высокого уровня, такой как JAX-RS Client или клиенты wsimport для подключения к другому сайту.

  • VideoView getDrawingCache возвращается черным
  • Как изменить свое местоположение с помощью Google Maps android API v2?
  • Программное отключение телефона Android
  • Использование файлов cookie с Android-библиотекой volley
  • Android Google Maps API V2 Увеличить до текущего местоположения
  • Android ListView child View setEnabled () и setClickable () ничего не делают
  • Класс api v2 Google Maps не найден
  • Ошибка «Соединение с adb не работает, и произошла серьезная ошибка».
  • Android: автоматически выбирает debug / release Maps v2 api key?
  • Android Studio TransformException: ошибка: выполнение не выполнено для задачи ': app: transformClassesWithDexForDebug'
  • Реализация паузы / возобновления загрузки файла
  • Давайте будем гением компьютера.