Android使用okhttp3和retrofit2进行单文件和多文件上传
短信预约 -IT技能 免费直播动态提醒
前言
开发项目中需要进行单文件多文件的上传功能,下面演示的ApiResponse是自己分装的返回值,要根据自己的项目来完成。使用的mvvm框架,kotlin协程。
看下大体思路和传参形式,仅供参考
一、单文件上传
1、apiService中
@Multipart
@POST("xxxx/xxx")
suspend fun upload(
@Part part: MultipartBody.Part,
@Query("code") code: String
): ApiResponse<String>
2、acivity代码
val file = File(it)
val requestBody: RequestBody = RequestBody.create(MediaType.parse("image/*"), file)
val part = MultipartBody.Part.createFormData("file", file.getName(), requestBody)
mViewModel.upload(part)
二、多文件上传
1、apiservice中
@POST("xxx/xxxxs")
suspend fun uploads(
@Body part: MultipartBody,
@Query("code") code: String
): ApiResponse<String>
2、acivity代码
val builder = MultipartBody.Builder()
builder.setType(MultipartBody.FORM)
getDataList()?.filter { !it.filePath.isNullOrEmpty() }.forEach {
val file = File(it.filePath)
builder.addFormDataPart(
"files",
file.getName(),
RequestBody.create(MediaType.parse("image/jpg"), file)
)
}
mViewModel.uploads(builder.build())
总结
记录总结,要根据自己的框架进行参考改造。
到此这篇关于Android 使用 okhttp3和retrofit2 进行单文件和多文件上传的文章就介绍到这了,更多相关Android 单文件和多文件上传内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341