欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Android Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 三 文件上传(支持多文件/多图片上传)

程序员文章站 2022-07-03 21:18:02
文件上传...

我们在写项目的时候必不可少的会用到网络请求服务器,现Retrofit2+rxjava2+Mvp的框架组合已经成为了主流网络请求框架,我使用这个框架两年多了 以下分享下开发心得和使用方法

Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 一 框架配置

Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 二 请求数据

Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 三 文件上传(支持多文件)

Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 四 下载文件

我们今天以多图片上传为例,实现多图片上传服务器

1,添加网络上传接口
2,创建请求回调接口
3,初始化 调用

第一步请求工具类Api里添加上传接口

  //图片上传
    @Multipart
    @POST("face/uploadFile")
    fun uploadFile(@Part partList: List<MultipartBody.Part>): Observable<ResultEntity>

添加回调接口

interface ICUpdate {

    interface IPUpdate {
  		fun updateData()

    }

    interface IVUpdate : BaseView{
        fun sucess(status:Boolean)
    }

}
class UpdatePresenter(private val mView: ICUpdate.IVUpdate) :
    BasePresenter(),
    ICUpdate.IPUpdate {

    private val mProvider: LifecycleProvider<ActivityEvent>
    private val mView: ICCustodyCard.IVCustodyCard

    constructor(
        mProvider: LifecycleProvider<ActivityEvent>,
        mView: ICCustodyCard.IVCustodyCard
    ) : super() {
        this.mProvider = mProvider
        this.mView = mView
    }

    override fun uploadData(list:List<Url>) {

    
        val parts = ArrayList<MultipartBody.Part>()
        list.forEach { 
            val body =
                RequestBody.create(MediaType.parse("multipart/form-data"), File(it))
            val part = MultipartBody.Part.createFormData("file", "123" + ".jpg", body)
            parts.add(part)
        }

        RetrofitHelper.getApi().uploadFile(parts).map {

            return@map it
        }
            .compose(RxUtils.rxSchedulerHelper())
            .compose(mProvider.bindToLifecycle())
            .subscribe({
                if (it.code == Utils.SUCCESS) {
                    mView.sucess(true)
                } else {
                    mView.showError(it.msg)
			 }
		  }, { mView.showError("${it.message}") })
    }


}

持续更新中

本文地址:https://blog.csdn.net/qq_28643195/article/details/107543643

相关标签: 三方框架