Rumah >Java >javaTutorial >Bagaimana untuk Berhijrah daripada `org.apache.http.entity.FileEntity` yang ditamatkan untuk Muat Naik Fail dalam Android?

Bagaimana untuk Berhijrah daripada `org.apache.http.entity.FileEntity` yang ditamatkan untuk Muat Naik Fail dalam Android?

Susan Sarandon
Susan Sarandonasal
2024-11-26 15:12:101038semak imbas

How to Migrate from Deprecated `org.apache.http.entity.FileEntity` for File Uploads in Android?

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:

  • HttpURLConnection: Walaupun HttpURLConnection menyediakan penyelesaian asli untuk muat naik fail, APInya boleh didapati dengan ketara. lebih kompleks.
  • Apache HttpClient untuk Android: Ini ialah pembungkusan bebas HttpClient yang disesuaikan khusus untuk Android.
  • OkHttp: Pustaka yang disyorkan ini menawarkan API diperkemas untuk muat naik fail.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Java Stream.distinct()Artikel seterusnya:Java Stream.distinct()