Maison >Java >javaDidacticiel >Comment remplacer org.apache.http.entity.FileEntity pour les téléchargements de fichiers sous Android 6 et supérieur ?

Comment remplacer org.apache.http.entity.FileEntity pour les téléchargements de fichiers sous Android 6 et supérieur ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-30 05:56:13709parcourir

How to Replace org.apache.http.entity.FileEntity for File Uploads in Android 6 and Above?

La migration depuis org.apache.http.entity.FileEntity dans Android 6

La mise à niveau des applications vers Android 6 introduit des conflits avec l'organisation obsolète. bibliothèque apache.http. La classe FileEntity, précédemment utilisée pour le téléchargement de fichiers, n'est plus prise en charge. Les développeurs recherchent des solutions alternatives avec une mise en œuvre plus simple.

Une approche consiste à maintenir compileSdkVersion à 21, permettant aux applications de se compiler à l'aide de la classe FileEntity. Cependant, cette solution de contournement ne résout pas le problème de dépréciation et ignore les intentions de Google de s'éloigner de HttpURLConnection.

Par conséquent, les développeurs sont encouragés à explorer des bibliothèques alternatives.

Bibliothèques alternatives pour les fichiers Téléchargements

  • java.net.HttpUrlConnection : Java classique intégré HttpURLConnection fournit une alternative, bien qu'avec une API moins conviviale.
  • HttpClient d'Apache pour Android : Le packaging Apache indépendant offre un HttpClient pour Android.
  • OkHttp (Recommandé) : Comprend une API conviviale pour la publication de fichiers et les téléchargements de formulaires en plusieurs parties.
  • AndroidAsync : Un client HTTP et WebSocket asynchrone bibliothèque.

Exemple OkHttp pour le téléchargement de fichiers

OkHttp propose une API simple pour les téléchargements de fichiers :

MultipartBody multipartBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
        .addFormDataPart("image", "filename.png", RequestBody.create(MediaType.parse("image/png"), file))
        .build();

Request request = new Request.Builder().url(server_url).post(multipartBody).build();

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn