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
Lepaskan: 2024-11-26 15:12:10
asal
971 orang telah melayarinya

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());
Salin selepas log masuk

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();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan