Не удается импортировать 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, вам действительно нужно перейти к чему-то другому. Это "что-то еще" может быть:

Или, в зависимости от характера вашей работы 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'
Другие вопросы по тегам