首页 >Java >java教程 >如何在 Android 6 及更高版本中替换 org.apache.http.entity.FileEntity 进行文件上传?

如何在 Android 6 及更高版本中替换 org.apache.http.entity.FileEntity 进行文件上传?

Susan Sarandon
Susan Sarandon原创
2024-11-30 05:56:13695浏览

How to Replace org.apache.http.entity.FileEntity for File Uploads in Android 6 and Above?

从 Android 6 中的 org.apache.http.entity.FileEntity 迁移

将应用程序升级到 Android 6 会导致与已弃用的组织发生冲突。 apache.http 库。不再支持以前用于上传文件的 FileEntity 类。开发人员寻求实现更简单的替代解决方案。

一种方法是将compileSdkVersion 维持在21,允许应用程序使用FileEntity 类进行编译。但是,此解决方法并没有解决弃用问题,并且忽略了 Google 放弃 HttpURLConnection 的意图。

因此,鼓励开发人员探索替代库。

文件的替代库上传

  • java.net.HttpUrlConnection:内置经典的Java HttpURLConnection提供了一种替代方案,尽管API不太友好。
  • Apache 的 Android HttpClient: 独立的 Apache 打包提供了专用的 HttpClient Android。
  • OkHttp(推荐): 具有用户友好的 API,用于文件发布和分段表单上传。
  • AndroidAsync: 异步 HTTP和 WebSocket 客户端库。

OkHttp 文件示例上传

OkHttp 提供了一个简单的 API 用于文件上传:

MultipartBody multipartBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
        .addFormDataPart("image", "filename.png", RequestBody.create(MediaType.parse("image/png"), file))
        .build();

Request request = new Request.Builder().url(server_url).post(multipartBody).build();

以上是如何在 Android 6 及更高版本中替换 org.apache.http.entity.FileEntity 进行文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn