HttpClient no importa en Android Studio

Tengo una clase simple escrita en Android Studio:

package com.mysite.myapp;

import org.apache.http.client.HttpClient;

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

y a partir de ella obtengo el siguiente error en tiempo de compilación:

No se puede resolver el símbolo HttpClient.

¿No se incluye HttpClient en el SDK de Android Studio? Aunque no lo esté, lo he añadido a mi build de Gradle así:

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 sin la última línea de compilación, el error es el mismo. ¿Qué me falta?

Solución

HttpClient ya no está soportado en el sdk 23. Tienes que usar URLConnection o hacer un downgrade al sdk 22 (compile 'com.android.support:appcompat-v7:22.2.0')

Si necesitas el sdk 23, añade esto a tu gradle:

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

También puede intentar descargar e incluir HttpClient jar directamente en su proyecto o utilizar OkHttp en su lugar

Comentarios (15)

El cliente ApacheHttp ha sido eliminado en la v23 del sdk. Puedes usar HttpURLConnection o un cliente Http de terceros como OkHttp.

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

Comentarios (1)

¿Qué objetivo de la API tiene dentro de su proyecto? AndroidHttpClient es sólo para el nivel de la API 8

Comentarios (0)