Android

关注公众号 jb51net

关闭
首页 > 软件编程 > Android > android 单文件和多文件上传

Android 使用 okhttp3和retrofit2 进行单文件和多文件上传

作者:_MWY

这篇文章主要介绍了Android 使用 okhttp3和retrofit2 进行单文件和多文件上传,开发项目中需要进行单文件多文件的上传功能,下面演示的ApiResponse是自己分装的返回值,要根据自己的项目来完成,需要的朋友可以参考下

前言

开发项目中需要进行单文件多文件的上传功能,下面演示的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 单文件和多文件上传内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文