我们在写项目的时候必不可少的会用到网络请求服务器,现Retrofit2+rxjava2+Mvp的框架组合已经成为了主流网络请求框架,我使用这个框架两年多了 以下分享下开发心得和使用方法
Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 一 框架配置
Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 二 请求数据
Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 三 文件上传(支持多文件上传)
Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 四 下载文件
我们今天以登录验证接口为例 实现请求传参返回数据
1,创建User实体,添加返回实体对象
2,创建请求回调接口
3,初始化 调用
第一步 创建User实体,添加返回实体对象
public class User implements Serializable {private String userId ;/*** 用户名*/private String username;public User() {}public User(String userId, String username) {this.userId = userId;this.username = username;}public String getUsername() {return this.username;}public void setUsername(String username) {this.username = username;}public String getUserId() {return this.userId;}public void setUserId(String userId) {this.userId = userId;}}
第二步创建请求回调接口
interface ICCheck {interface IPCheck {fun check(userName: String, password: String)}interface IVCheck : BaseView {fun checkResult(boolean: Boolean)}}
class CheckPresenter : BasePresenter, ICCheck.IPCheck {private val mProvider: LifecycleProvider<ActivityEvent>private val mView: ICCheck.IVCheckconstructor(mProvider: LifecycleProvider<ActivityEvent>, mView: ICCheck.IVCheck) : super() {this.mProvider = mProviderthis.mView = mView}override fun check(userName: String,password: String) {RetrofitHelper.getApi().loginApp(userName, password).map {return@map it}.compose(RxUtils.rxSchedulerHelper()).compose(mProvider.bindToLifecycle()).subscribe({if (it.code == Utils.SUCCESS) {mView.checkResult(true)} elsemView.showError(it.msg)}, {mView.showError(\"${it.message}\")})}}
第三步初始化 调用
class LoginActivity : BaseActivity(), ICCheck.IVCheck{override fun initView() {val checkPresenter = CheckPresenter(this, this)//初始化checkPresenter.check( \"小明\", \"123456\" )//请求接口调用}override fun checkResult(boolean: Boolean) {//返回结果是否成功}override fun showError(msg: String) {//返回异常ToastUtils.showShort(msg)}}
以上我们可以发现 当我们配置好工具类之后 我们在MVP模式下 实际的activity的代码量很少 简洁明了 易于维护 好的,关于请求数据我们就写到这里 有不好的的地方或者有问题的还请小伙伴多多留言指教