web-dev-qa-db-fra.com

Impossible d'importer org.Apache.http.HttpResponse dans Android Studio

Je souhaite utiliser ces bibliothèques dans 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;

Je suis un tutoriel vidéo dans lequel le tuteur utilise Eclipse, donc je sais que cela fonctionne.

Mais quels éléments/bibliothèques supplémentaires dois-je ajouter à Android Studio afin de les utiliser?

30
Mohsin Anees

HttpClient est obsolète dans Android 5.1 et est supprimé du Android SDK dans Android 6.0. Tant qu'il y en a ne solution de contournement pour continuer à utiliser HttpClient dans Android 6.0 avec Android Studio) , vous devez vraiment passer à autre chose. Ce "autre chose" pourrait être:

Ou, en fonction de la nature de votre travail HTTP, vous pouvez choisir une bibliothèque prenant en charge des opérations d'ordre supérieur (par exemple, Retrofit for API de service Web).

En un clin d'œil, vous pouvez activer les API héritées en ajoutant useLibrary 'org.Apache.http.legacy' À votre Android clôture dans le fichier build.gradle De votre module. Toutefois, depuis des années, Google conseille aux utilisateurs de ne plus utiliser le HttpClient intégré d'Android. Tout au plus devrait-il s'agir là d'une solution provisoire alors que vous travaillerez de manière plus permanente vers une autre API.

40
CommonsWare

HttpClient est obsolète dans sdk 2.

Vous devez vous déplacer sur URLConnection ou descendre à 22

Vous avez toujours besoin de HttpClient avec update gradle sdk 23

Vous devez ajouter les dépendances de HttpClient dans app/gradle en tant que

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'
    ...
}
63
TejaDroid

Principal 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 spécifique au module - /app/build.gradle

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    ...
    useLibrary 'org.Apache.http.legacy'
    ...
}
23
Sujewan

Selon le site Apache, il s’agit de la dépendance Gradle à inclure si vous utilisez Android API 23 ou une version plus récente:

dependencies {
    compile group: 'cz.msebera.Android' , name: 'httpclient', version: '4.4.1.1'
}

Source: https://hc.Apache.org/httpcomponents-client-4.5.x/Android-port.html

3
graves501

si vous voulez commencer le développement, optez pour OkHttp from square, sinon, si vous devez conserver votre code précédent, ajoutez la bibliothèque héritée à vos dépendances de projet:

dependencies {
    compile group: 'org.Apache.httpcomponents' , name: 'httpclient-Android' , version: '4.3.5.1'
}
0
abedfar