Не удается импортировать org.apache.http.HttpResponse в Android Studio
Я хочу использовать эти библиотеки в Android Studio:
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
Я слежу за видеоуроком, в котором репетитор использует Eclipse, поэтому я знаю, что он работает.
Но какие дополнительные вещи / библиотеки я должен добавить в Android Studio, чтобы использовать их?
6 ответов
HttpClient устарел в Android 5.1 и удален из Android SDK в Android 6.0. Хотя есть обходной путь для продолжения использования HttpClient в Android 6.0 с Android Studio, вам действительно нужно перейти к чему-то другому. Это "что-то еще" может быть:
- встроенная классическая Java
HttpUrlConnection
- Независимая упаковка Apache HttpClient для Android
- OkHttp (моя рекомендация)
- AndroidAsync
Или, в зависимости от характера вашей работы HTTP, вы можете выбрать библиотеку, которая поддерживает операции более высокого порядка (например, Retrofit for API веб-служб).
В крайнем случае, вы могли бы включить устаревшие API, имея useLibrary 'org.apache.http.legacy'
в вашем android
закрытие в вашем модуле build.gradle
файл. Тем не менее, Google годами советовал людям прекратить использование встроенного в Android HttpClient, и в большинстве случаев это должен быть шаг вперед, пока вы работаете над более постоянным переходом на другой API.
HttpClient устарел в SDK 23.
Вы должны перейти на URLConnection или вниз SDK до 22
Еще вам нужен HttpClient с обновлением Gradle SDK 23
Вы должны добавить зависимости HttpClient в app/gradle как
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
...
}
Основной build.gradle - /build.gradle
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
// Versions: http://jcenter.bintray.com/com/android/tools/build/gradle/
}
...
}
Специфичный для модуля build.gradle - /app/build.gradle
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
...
useLibrary 'org.apache.http.legacy'
...
}
Согласно сайту Apache, это зависимость Gradle, которую необходимо включить, если вы используете Android API 23 или новее:
dependencies {
compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'
}
Источник: https://hc.apache.org/httpcomponents-client-4.5.x/android-port.html
Если вы собираетесь начать разработку, перейдите к OkHttp с квадрата, в противном случае, если вам нужно сохранить работоспособность предыдущего кода, добавьте устаревшую библиотеку в зависимости вашего проекта:
dependencies {
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}
Использовать этот:-
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'