我们在写项目的时候必不可少的会用到网络请求服务器,现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.IVCustodyCardconstructor(mProvider: LifecycleProvider<ActivityEvent>,mView: ICCustodyCard.IVCustodyCard) : super() {this.mProvider = mProviderthis.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}\") })}}