升级到 API 23:解决 org.apache.http.entity.FileEntity 的弃用问题
随着 Android 6 (Marshmallow) 的出现),org.apache.http 库已被弃用。这给依赖 FileEntity 类进行文件上传的开发人员带来了挑战。
过时的文件上传代码
以下代码片段举例说明了已弃用的方法:
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());
替代方案解决方案
FileEntity 类的一些替代方案包括:
OkHttp文件上传解决方案
使用OkHttp,可以实现类似的文件上传功能使用以下代码:
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();
此解决方案允许采用更简洁且易于管理的文件上传方法,同时遵守最新的 Android 指南。
以上是如何从已弃用的'org.apache.http.entity.FileEntity”迁移到 Android 中的文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!