Menaik taraf kepada API 23: Menangani Penamatan org.apache.http.entity.FileEntity
Dengan kemunculan Android 6 (Marshmallow ), perpustakaan org.apache.http telah ditamatkan. Ini menimbulkan cabaran bagi pembangun yang bergantung pada kelas FileEntity untuk muat naik fail.
Kod Lapuk untuk Muat Naik Fail
Coretan kod berikut menunjukkan pendekatan yang tidak digunakan lagi:
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());
Alternatif Penyelesaian
Beberapa alternatif kepada kelas FileEntity termasuk:
Penyelesaian OkHttp untuk Muat Naik Fail
Menggunakan OkHttp, fungsi muat naik fail yang serupa boleh dicapai dengan kod berikut:
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();
Penyelesaian ini membolehkan pendekatan yang lebih ringkas dan terurus untuk muat naik fail sambil mematuhi garis panduan Android terkini.
Atas ialah kandungan terperinci Bagaimana untuk Berhijrah daripada `org.apache.http.entity.FileEntity` yang ditamatkan untuk Muat Naik Fail dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!