'org.apache.http.HttpEntity' est obsolète. Comment résoudre cette erreur dans le studio android?
je suis en utilisant android studio API22 et j'ai ces erreurs:
'org.apache.http.HttpEntity' is deprecated
'org.apache.http.HttpResponse' is deprecated
'org.apache.http.NameValuePair' is deprecated
'org.apache.http.client.HttpClient' is deprecated
'org.apache.http.client.entity.UrlEncodedFormEntity' is deprecated
'org.apache.http.client.methods.HttpPost' is deprecated
'org.apache.http.impl.client.DefaultHttpClient' is deprecated
'org.apache.http.message.BasicNameValuePair' is deprecated
'org.apache.http.params.BasicHttpParams' is deprecated
'org.apache.http.params.HttpConnectionParams' is deprecated
'org.apache.http.params.HttpParams' is deprecated
'org.apache.http.util.EntityUtils' is deprecated
Comment puis-je résoudre ce problème?
source d'informationauteur Sml
Vous devez vous connecter pour publier un commentaire.
Ajouter à votre gradle
Exemple
Citant moi-même:
Ou, selon ce que vous utilisez HttpClient pour, l'utilisation d'un réseau spécifique de la bibliothèque (Rénovation pour les services Web, Picasso ou Universel, Chargeur d'Image pour les images, etc.).
Également noter que HttpClient est supprimé à partir du SDK pour le M Developer Preview, indiquant qu'il sera supprimée dans la prochaine version d'Android. Alors qu'il est une solution pour continuer à utiliser HttpClient en Mvous avez vraiment besoin de passer à autre chose.
La version du client HTTP Apache fourni sur stock Android a été très très vieux.
Si vous ne voulez pas passer à une nouvelle API, vous pouvez ajouter manuellement une nouvelle version de Apache HttpClient bibliothèque dans votre projet afin de remplacer l'ancienne version obsolète dans Android SDK < 22.
La façon la plus facile de le faire lorsque le ciblage SDK 23+ est à utiliser de Marek Sebera nouveau Apache HttpClient paquet pour Android (comme suggéré par Apache), ce qui pourrait fonctionner comme un simple remplacement. Il suffit d'ajouter le suivant dépendance de votre construction.gradle fichier (mise à jour le numéro de version le cas échéant):
compile "cz.msebera.android:httpclient:4.4.1.1"
et remplacer
import org.apache.http.*
avecimport cz.msebera.android.httpclient.*
partout dans votre projet.Noter que de nombreuses classes de l'ancienne bibliothèque sont obsolètes (par exemple,
HttpParams
ThreadSafeClientConnManager
), afin de réécrire le code est probablement va être une meilleure solution.Edit: j'ai trouvé des cas où les utilisateurs obtenaient exceptions d'expiration lorsque derrière des serveurs proxy après nous avons mis à jour à la plus récente du client Http. Depuis que le code est plein de déprécié avertissements partout, nous avons décidé que cela ne valait pas l'effort d'essayer de résoudre le problème. Je recommande de tester très soigneusement avant de tenter de les mettre en production.
Comme mentionné dans d'autres réponses, une bien meilleure solution est de mordre la balle et passer de l'un soit de l'Android natif
HttpUrlConnection
ou si cela ne répond pas à vos besoins, vous pouvez utiliser la bibliothèqueOkHttp
qui est ce queHttpUrlConnection
est en interne, basé sur de toute façon.HttpClient deperected à partir d'android lollypop 5.1 API (22) :-
Mais encore nous pouvons utiliser HttpClient par l'utilisation de code suivant dans Android studio:-
Goto app\build.gradle fichier:
[OU ALTERNATIVES]
Télécharger et ajouter HttpClient jar fichiers à votre projet ou de l'utilisation okHttp.
Télécharger le
org.apache.http.legacy
fichier jar à partir de ici.Dans le
build.gradle
de fichier, tapez le code suivantEnregistrer le fichier téléchargé .jar fichier à l'emplacement suivant
Je suis en utilisant android-23 en vertu de plates-formes, cela dépend du niveau API que vous utilisez. Si l'option dossier n'existe pas, créez-le en option dossier et collez le .jar fichier avant de synchroniser le projet gradle.
La Suite de la Dépendance dans votre Gradle
Ajouter à votre gradle
Exemple
Cette bibliothèque vous permettra de l'utiliser sans problème, au moins je n'ai pas eu de problème jusqu'à maintenant.