当前位置: 移动技术网 > IT编程>开发语言>Java > Android Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 三 文件上传(支持多文件/多图片上传)

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

2020年07月27日  | 移动技术网IT编程  | 我要评论

我们在写项目的时候必不可少的会用到网络请求服务器,现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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网