HttpClient non si importa in Android Studio

Ho una semplice classe scritta in Android Studio:

package com.mysite.myapp;

import org.apache.http.client.HttpClient;

public class Whatever {
    public void headBangingAgainstTheWallExample () {
        HttpClient client = new DefaultHttpClient();
    }
}

e da questo ottengo il seguente errore di compilazione:

Impossibile risolvere il simbolo HttpClient

Non è HttpClient incluso nell'SDK di Android Studio? Anche se non lo è, l'ho aggiunto alla mia build di Gradle in questo modo:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'org.apache.httpcomponents:httpclient:4.5'
}

Con o senza l'ultima riga di compilazione, l'errore è lo stesso. Cosa mi manca?

Soluzione

HttpClient non è più supportato in sdk 23. Devi usare URLConnection o fare il downgrade a sdk 22 (compile 'com.android.support:appcompat-v7:22.2.0')

Se hai bisogno di sdk 23, aggiungi questo al tuo gradle:

android {
    useLibrary 'org.apache.http.legacy'
}

Puoi anche provare a scaricare e includere HttpClient jar direttamente nel tuo progetto o usare invece OkHttp

Commentari (15)

Il client ApacheHttp è stato rimosso nella sdk v23. Potete usare HttpURLConnection o un client Http di terze parti come OkHttp.

rif: https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client.

Commentari (1)

Quale obiettivo API hai all'interno del tuo progetto? AndroidHttpClientè solo per il livello API 8

Commentari (0)