org.apache.http.entity.FileEntity Penamatan pada Android 6 (Marshmallow): Panduan Komprehensif
Dengan keluaran Android Marshmallow , kelas org.apache.http.entity.FileEntity yang dihormati telah ditamatkan. Ini menyebabkan pembangun mencari alternatif untuk mengendalikan muat naik fail.
Notis Penamatan
Bahagian kod berikut, yang biasa digunakan untuk muat naik fail, tidak akan berfungsi lagi pada Android 6 dan ke atas:
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
Menggantikan FileEntity dengan kaedah lain boleh menjadi lebih kompleks, tetapi terdapat beberapa pilihan berdaya maju yang tersedia:
HttpURLConnection
Terbina -dalam kelas Java HttpURLConnection boleh digunakan untuk muat naik fail, tetapi APInya lebih verbose dan memerlukan lebih banyak baris kod. Berikut ialah contoh menggunakan HttpURLConnection:
// Implement your own HTTP file upload logic here
Apache HttpClient untuk Android
Apache menyediakan perpustakaan HttpClient yang berasingan untuk Android, yang termasuk penggantian untuk FileEntity. Menggunakan pustaka ini memerlukan kebergantungan tambahan, tetapi ia menawarkan API biasa untuk mengendalikan muat naik fail.
OkHttp
OkHttp ialah perpustakaan pihak ketiga yang popular untuk rangkaian HTTP dalam Android. Ia menampilkan API yang bersih dan ringkas yang memudahkan untuk mengendalikan muat naik fail. Berikut ialah contoh menggunakan MultipartBuilder OkHttp:
// Implement your own OkHttp file upload logic here
Pertimbangan Lain
CompileSdkVersion
Menukar kehendak compileSdkVersion kepada 2SdkVersion benarkan apl anda menyusun menggunakan FileEntity, tetapi adalah penting untuk menangani sebab asas penamatannya.
Perpustakaan Alternatif
Selain pilihan yang dibincangkan di atas, terdapat perpustakaan lain yang tersedia untuk rangkaian HTTP dalam Android, seperti Tampar, Retrofit dan AndroidAsync. Perpustakaan ini menawarkan pelbagai ciri dan kelebihan, bergantung pada keperluan khusus anda.
Atas ialah kandungan terperinci Apakah Alternatif Terbaik kepada org.apache.http.entity.FileEntity yang ditamatkan dalam Android 6 dan Ke Atas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!