Maison >Java >javaDidacticiel >Comment migrer depuis « org.apache.http.entity.FileEntity » obsolète pour les téléchargements de fichiers sous Android ?
Mise à niveau vers l'API 23 : remédier à la dépréciation de org.apache.http.entity.FileEntity
Avec l'avènement d'Android 6 (Marshmallow ), la bibliothèque org.apache.http est obsolète. Cela pose un défi aux développeurs qui s'appuient sur la classe FileEntity pour les téléchargements de fichiers.
Code obsolète pour le téléchargement de fichiers
L'extrait de code suivant illustre l'approche obsolète :
HttpClient httpClient = new DefaultHttpClient(); File file = new File(attr.Value); String url = server_url; HttpPost request = new HttpPost(url); FileEntity fileEntity = new FileEntity(file, "image/png"); request.setEntity(fileEntity); HttpResponse response = httpClient.execute(request); String output = getContent(response.getEntity().getContent());
Alternative Solutions
Certaines alternatives à la classe FileEntity incluent :
Solution OkHttp pour le téléchargement de fichiers
Utilisation OkHttp, une fonctionnalité de téléchargement de fichiers similaire peut être obtenue avec le code suivant :
OkHttpClient client = new OkHttpClient(); RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("image/png"), file)) .build(); Request request = new Request.Builder() .url(server_url) .post(requestBody) .build(); Response response = client.newCall(request).execute(); String result = response.body().string();
Cette solution permet une approche plus concise et gérable des téléchargements de fichiers tout en respectant les dernières directives Android.
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!