Non è possibile importare org.apache.http.HttpResponse in Android Studio

Voglio utilizzare queste librerie 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;

Sto seguendo un video tutorial in cui il tutor è utilizzando Eclipse quindi so che funziona.

Ma quali altre cose/librerie devo aggiungere per Android Studio per il loro utilizzo?

  • Avete dipendenze dell’gradle file?

 

6 Replies
  1. 40

    HttpClient è stata sostituita con Android 5.1 e viene rimosso dall’Android SDK di Android 6.0. Mentre non vi è una soluzione per continuare a utilizzare HttpClient in Android 6.0 con Android Studio, si ha realmente bisogno di passare a qualcosa di altro. Quel “qualcos’altro” potrebbe essere:

    O, a seconda della natura del vostro HTTP lavoro, si potrebbe scegliere una libreria che supporta superiore-ordine delle operazioni (ad esempio, Retrofit per le Api del servizio Web).

    In un pizzico, è possibile abilitare il legacy Api, avendo useLibrary 'org.apache.http.legacy' nel android chiusura nel modulo build.gradle file. Tuttavia, Google ha dato consigli a persone che, per anni, di smettere di usare Android built-in HttpClient, e presso la maggior parte, questo dovrebbe essere un tappabuchi spostare, mentre si lavora su una base più permanente passaggio a un altro API.

    • Ecco un aggiornamento di link alla soluzione
    • Ho modificato la risposta per contenere il link aggiornato — grazie!
  2. 63

    HttpClient è deprecato in sdk 23.

    Bisogna muoversi su URLConnection o giù sdk per 22

    Ancora avete bisogno di HttpClient con aggiornamento gradle sdk 23

    Si devono aggiungere le dipendenze di HttpClient in app/gradle come

    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'
        ...
    }
    • Chi utilizza Un Asincrono HTTP Libreria e SDK 23, sarà necessario seguire @TejaDroid ‘s risposta.
    • Aggiungere alla app/gradle
    • Questo funziona, grazie
    • Ma era sempre errore in fase di compilazione com.android.supporto:appcompat-v7:23.0.1′
    • Penso che ci devono essere la stessa di buildToolsVersion e compilare lib versione. significa che, se hai buildToolsVersion = 23.0.2 quindi utilizzare appcompat versione 23.0.2.
  3. 23

    Principale di costruire.gradle – /build.gradle

    buildscript {
        ...
        dependencies {
            classpath 'com.android.tools.build:gradle:1.3.1' 
            //Versions: http://jcenter.bintray.com/com/android/tools/build/gradle/
        }
        ...
    }

    Modulo specifico di costruire.gradle – /app/build.gradle

    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.1"
        ...
        useLibrary 'org.apache.http.legacy'
        ...
    }
    • Non dobbiamo modificare il “Main costruire gradle”. giusto?? Comunque, ho inserito la riga: useLibrary ‘org.apache.http.legacy’ in app/build/gradle e funziona bene per me.
  4. 0

    nel caso in cui si sta per avviare lo sviluppo, andare per OkHttp dalla piazza, altrimenti se avete bisogno di conservare il codice in esecuzione, quindi aggiungere legacy libreria al progetto dipendenze:

    dependencies {
        compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
    }

Lascia un commento