Android Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 三 文件上传(支持多文件/多图片上传)
程序员文章站
2022-03-21 18:53:19
文件上传...
我们在写项目的时候必不可少的会用到网络请求服务器,现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