Defaulthttpclient android studio подключить

HttpClient не будет импортироваться в Android Studio

У меня есть простой класс, написанный в Android Studio:

И из этого я получаю следующую ошибку времени компиляции:

Cannot resolve symbol HttpClient

Не включен ли HttpClient в Android Studio SDK? Даже если это не так, я добавил его в свою сборку Gradle следующим образом:

С или без последней строки компиляции ошибка одинакова. Что мне не хватает?

HttpClient больше не поддерживается в sdk 23. Вы должны использовать URLConnection или downgrade для sdk 22 ( compile ‘com.android.support:appcompat-v7:22.2.0’ )

Если вам нужен sdk 23, добавьте это в свою граду:

Вы также можете попытаться загрузить и включить банку HttpClient непосредственно в свой проект или вместо этого использовать OkHttp

HttpClient устарел на уровне API 22 и удален в API-уровне 23. Вы все равно можете использовать его в API-интерфейсе 23 и далее, если вам нужно, однако лучше всего перейти к поддерживаемым методам обработки HTTP. Итак, если вы компилируете с 23, добавьте это в свой build.gradle:

Ответ TejaDroid в ссылке ниже помог мне. Не удается импортировать org.apache.http.HttpResponse в Android Studio

Использовать Apache HTTP для SDK уровня 23:

Верхний уровень build.gradle – /build.gradle

Уведомление от студии Android о обновлении градиента:

Специфический модуль build.gradle – /app/build.gradle

Попробуйте это сработало для меня. Добавьте эту зависимость в файл build.gradle.

2- Откройте zip, скопируйте файлы jar в папку libs. Вы можете найти его, если перейдете к вершине своего проекта, где говорится «Android», вы найдете список, когда вы нажмете его. Так,

Android -> Проект -> приложение -> libs

, Тогда поставьте банки там.

3- В build.grale (Mudule: приложение) добавить

4- В классе java добавьте следующие импорты:

HttpClient больше не поддерживается в sdk 23. Релиз Android 6.0 (API Level 23) удаляет поддержку для HTTP-клиента Apache. Вы должны использовать

А также добавить ниже фрагмент кода в вашей зависимости:

// http окончательное решение для веб-сервиса (включая загрузку файлов)

Это также поможет вам, пока вы используете Use MultipartEntity для загрузки файлов .

В API 22 они устаревают, а в API 23 они полностью их удалили, простое обходное решение, если вам не нужны все причудливые вещи из новых дополнений, – просто использовать файлы .jar из apache, которые были интегрированы перед API 22, но Как разделенные файлы .jar:

Клиент ApacheHttp удален в v23 sdk. Вы можете использовать HttpURLConnection или сторонний Http-клиент, например OkHttp.

Выпуск Android 6.0 (API Level 23) удаляет поддержку для HTTP-клиента Apache. Следовательно, вы не можете использовать эту библиотеку непосредственно в API 23. Но есть способ ее использования. Добавить useLibrary ‘org.apache.http.legacy’ в файле build.gradle, как показано ниже,

Если это не сработает, вы можете применить следующие хак-

– Скопируйте org.apache.http.legacy.jar, который находится в каталоге / platform / android-23 / optional вашего каталога Android SDK в папку приложения / libs вашего проекта.

– Теперь добавьте компилируемые файлы (‘libs / org.apache.http.legacy.jar’) в раздел зависимостей <> файла build.gradle.

Вы можете просто добавить это в зависимости от Gradle:

Просто используйте это: –

HttpClient не поддерживается в sdk 23 и 23+.

Если вам нужно использовать в sdk 23, добавьте ниже код в свою граду:

Это работает для меня. Надеюсь, полезно для вас.

Какой целевой API вы используете в своем проекте? AndroidHttpClient предназначен только для уровня API 8 И, пожалуйста, посмотрите здесь

Читайте также:  Андроид смартфон не видит флешку

Наслаждайся своим кодом 🙂

Другой способ – если у вас есть файл httpclient.jar, вы можете сделать это:

Вставьте свой .jar-файл в папку «libs» в вашем проекте. Затем в градиенте добавьте эту строку в свой build.gradle (Module: app)

Если вам нужен sdk 23, добавьте это в свою граду:

Вы должны добавить только одну строку

В build.gradle (Module: app), например

Добавьте эти две строки в зависимости от зависимостей

Как уже упоминалось ранее, org.apache.http.client.HttpClient больше не поддерживается:

SDK (уровень API) # 23.

Вы должны использовать java.net.HttpURLConnection .

Если вы хотите упростить свой код (и жизнь) при использовании HttpURLConnection , вот Wrapper этого класса, который позволит вам выполнять простые операции с GET , POST и PUT с помощью JSON , например, с помощью HTTP PUT .

Не стесняйтесь использовать его.

Я думаю, что в зависимости от того, какая версия Android Studio у вас есть, важно также обновить свою студию Android, я тоже разочаровался в советах каждого, но не повезло, пока мне не пришлось обновлять версию для Android от 1.3 до 1.5, ошибки исчезли, как магия.

Источник

HttpClient не будет импортировать в Android Studio

у меня есть простой класс, написанный в Android Studio:

и из этого я получаю следующую ошибку времени компиляции:

Cannot resolve symbol HttpClient

не HttpClient включены в Android Studio SDK? Даже если это не так, я добавил его в свою сборку Gradle следующим образом:

С последней строкой компиляции или без нее ошибка одинакова. Что я упускаю?

22 ответов

HttpClient больше не поддерживается в SDK 23. Вы должны использовать URLConnection или понижение до sdk 22 ( compile ‘com.android.support:appcompat-v7:22.2.0’ )

Если вам нужен sdk 23, добавьте это в свой gradle:

вы также можете попробовать загрузить и включить HttpClient jar прямо в ваш проект или использовать OkHttp вместо

HttpClient был устаревшим на уровне API 22 и удален на уровне API 23. Вы все еще можете использовать его на уровне API 23 и далее, если необходимо, однако лучше всего перейти к поддерживаемым методам обработки HTTP. Итак, если вы компилируете с 23, добавить в свою сборку.Gradle в:

использовать Apache HTTP для SDK уровня 23:

сборка верхнего уровня.gradle — / build.Gradle в

уведомление от Android studio об обновлении gradle:

модуль конкретной сборки.gradle — / app / build.Gradle в

попробуйте это работать на меня Добавьте эту зависимость в свою сборку.файл gradle

2 — Откройте zip скопируйте файлы jar в папку libs. Вы можете найти его, если вы идете в верхней части вашего проекта, где говорится «Android»вы найдете список, когда вы щелкните его. Итак,

Android — > проект — > приложение — > libs

,затем поставить банки там.

3 — в строй.gradle (модуль: приложение) добавить

4-в классе java добавьте эти импорта:

HttpClient больше не поддерживается в sdk 23. Выпуск Android 6.0 (уровень API 23) удаляет поддержку HTTP-клиента Apache. Вы должны использовать

а также добавить ниже фрагмент кода в вашей зависимости:

/ / http окончательное решение для веб-сервиса (включая загрузку файлов)

Это также поможет вам во время использования Use MultipartEntity на загрузить.

в API 22 они становятся устаревшими, а в API 23 они полностью их удалили, простой обходной путь, если вам не нужны все причудливые вещи из новых дополнений, — просто использовать .jar-файлы из apache, которые были интегрированы до API 22 ,но разделены.файлы jar:

вы можете просто добавить это в зависимости Gradle:

выпуск Android 6.0 (уровень API 23) удаляет поддержку HTTP-клиента Apache. Поэтому вы не можете использовать эту библиотеку непосредственно в API 23. Но есть способ его использовать. Добавить useLibrary ‘ org.апаш.http.наследие » в вашей сборке.gradle файл, как показано ниже —

Читайте также:  Android создать папку рабочем столе

Если это не работает, вы можете применить следующий хак-

– копию орг.апаш.http.наследие.jar, который находится в / platforms / android-23 / необязательный путь вашего каталога Android SDK к приложению/libs вашего проекта папка.

— теперь добавьте файлы компиляции (‘libs / org.апаш.http.наследие.jar’) внутри раздела зависимостей<> сборки.файл gradle.

клиент ApacheHttp удаляется в v23 sdk. Вы можете использовать HttpURLConnection или сторонний Http-клиент, например OkHttp.

HttpClient не поддерживается в sdk 23 и 23+.

Если вам нужно использовать в sdk 23, добавьте ниже код к вашему gradle:

это работает для меня. Надеюсь, полезно для вас.

Если вам нужен sdk 23, добавьте это в свой gradle:

Источник

Какую библиотеку работы с HTTP в Android выбрать?

Представляю вашему вниманию перевод статьи «Which Android HTTP library to use?».

Для чего это вообще?

Немного истории

До Froyo HttpURLConnection имел некоторые не очень приятные баги. В частности, вызов close() у читаемого InputStream мог испортить пул соединений.

… большой размер их API мешает нам улучшать эту библиотеку без потери обратной совместимости. Команда Android не работает активно над Apache HTTP Client.

Apache HTTP client имеет мало багов на Eclair и Froyo, поэтому он является лучшим выбором для этих версий. А для Gingerbread и младше лучше подходит HttpURLConnection. Простота API и небольшой вес хорошо подходят для Android. Прозрачное сжатие и кэширование ответов помогают увеличить скорость и сохранить батарею. Новые приложения должны использовать HttpURLConnection.

Даже сегодня, если вы загляните в исходники Volley от Google (о ней я расскажу чуть попозже), вы сможете найти такое наследие:

Это классический пример фрагментации Android, которая заставляет страдать разработчиков. В 2013 году Square обратила внимание на эту проблему, когда выпускала OkHttp. OkHttp была создана для прямой работы с верхним уровнем сокетов Java, при этом не используя какие-либо дополнительные зависимости. Она поставляется в виде JAR-файла, так что разработчики могут использовать ее на любых устройствах с JVM (куда мы включаем, конечно, и Android). Для упрощения перехода на их библиотеку, Square имплементировали OkHttp используя интерфейсы HttpUrlConnection и Apache client.

OkHttp получила большое распространение и поддержку сообществом, и, в конце-концов, Google решили использовать версию 1.5 в Android 4.4 (KitKat). В июле 2015 Google официально признала AndroidHttpClient, основанный на Apache, устаревшим, вместе с выходом Android 5.1 (Lolipop).

Сегодня OkHttp поставляется со следующим огромным набором функций:

  1. Поддержка HTTP/2 и SPDY позволяет всем запросам, идущим к одному хосту, делиться сокетом
  2. Объединение запросов уменьшает время ожидания (если SPDY не доступен)
  3. Прозрачный GZIP позволяет уменьшить вес загружаемой информации
  4. Кэширование ответов позволяет избежать работу с сетью при повторных запросах.
  5. Поддержка как и синхронизированных блокирующих вызовов, так и асинхронных вызовов с обратным вызовом (callback)

Моя самая любимая часть OkHttp – как красиво и аккуратно можно работать с асинхронными запросами:

Это очень удобно, так как работа с сетью не должна быть в UI потоке. По-факту, начиная с Android 3.0 (Honeycomb, API 11), работа с сетью в отдельном потоке стала обязательной. Для того, чтобы воплотить что-то похожее с HtttpUrlConnection, вам потребуется построить большую (а может и монструозную) конструкцию с использованием AsyncTask или отдельного потока. Это будет еще более сложным, если вы захотите добавить отмену загрузки, объединение соединений и т.п.

Кстати, не осталась у обочины и HTTP библиотека от Google под названием Volley, которая предоставляет нам следующие бонусы:

Читайте также:  Резервное копирование всех настроек андроид

  1. Автоматическое планирование сетевых запросов
  2. Множество параллельных сетевых соединений
  3. Прозрачное кэширование в памяти и на диске, в соответствии со стандартной кэш-согласованностью.
  4. Поддержка приоритизации запросов.
  5. Отмена API запросов. Вы можете отменить как один запрос, так и целый блок.
  6. Простота настройки, например, для повторов и отсрочек.
  7. Строгая очередность, которая делает легким корректное заполнение данными, полученными асинхронно из сети, интерфейса пользователя.
  8. Инструменты отладки и трассировки

Все, что ни есть в Volley, находится на вершине HttpUrlConnection. Если вы хотите получить JSON или изображение, то Volley имеет на это специальный абстракции, такие как ImageRequest и JsonObjectRequest, которые помогают вам в автоматическом режиме конвертировать полезную нагрузку HTTP. Так же достойно внимания то, что Volley использует жестко запрограммированный размер сетевого пула:

Когда OkHttp использует поток для каждого вызова с ThreadPoolExecutor с максимальным значением Integer.MAX_VALUE:

В результате, в большинстве случаев OkHttp будет действовать быстрее за счет использования бОльшего количества потоков. Если по каким-то причинам вы захотите использовать OkHttp вместе Volley, то есть реализация HttpStack, которая использует API запросов/ответов из OkHttp заместо HttpURLConnection.

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

  1. Retrofit – типобезопасный HTTP Android клиент для взаимодействия с REST-интерфейсами
  2. Picasso – мощная библиотека для загрузки и кэширования изображений под Android

Retrofit предоставляет некий мост между Java кодом и REST-интерфейсом. Он позволяет быстро включить в ваш проект HTTP API интерфейсы, и генерирует самодокументирующуюся реализацию.

В дополнение ко всему, Retrofit поддерживает конвертацию в JSON, XML, протокол буферов (protocol buffers).

Picasso, с другой стороны, предоставляет HTTP библиотеку, ориентированную на работу с изображениями. Например, вы можете загрузить изображение в свой View с помощью одной строчки:

Picasso и Retrofi настроены так, чтобы использовать OkHttpClient как стандартный HTTP клиент. Однако, если хотите, вы можете указать клиентом HttpURLConnection.

Glide – что-то похожее на Picasso. Он предоставляет некоторые дополнительные функции, такие как GIF-анимация, генерация миниатюрных эскизов изображения и неподвижные видео. Полное сравнение можно найти здесь.

Facebook недавно открыли общественности исходный код библиотеки Fresco, которую они используют в своем мобильном приложении. Одна из ключевых функций, которая выделяет ее, — кастомная стратегия выделения памяти для bitmap’ов, чтобы избежать работы долгого GC (сборщик мусора). Fresco выделяет память в регионе, который называется ashmem. Используются некие трюки, чтобы иметь доступ к этому региону памяти доступ как из части, написанной на C++, так и из части на Java. Чтобы уменьшить потребление CPU и данных из сети, эта библиотека использует 3 уровня кэша: 2 в ОЗУ, третий во внутреннем хранилище.

Я нашел необходимым показать отношения между библиотеками на одной схеме. Как вы можете увидеть, HTTP всегда остается внизу у высокоуровневых библиотек. Вы можете выбирать между простым HttpUrlConnection или последним OkHttpClient. Мы используем эту совместимость при разработке PacketZoom Android SDK, о котором мы поговорим в следующем посте.

Недавно мы сравнивали между собой HTTP библиотеки по производительности, но эта тема заслужила отдельного рассмотрения. Мы надеемся, что этот обзор дал вам основные идеи о плюсах и минусах каждой библиотеки, и мы помогли вам сделать правильный выбор. Следите за выходом более интересных постов о сетевой работе в Android от нас.

Источник

Оцените статью