Android Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 二 请求数据(登录为例)

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

    constructor(mProvider: LifecycleProvider<ActivityEvent>, mView: ICCheck.IVCheck) : super() {
        this.mProvider = mProvider
        this.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)
                } else
                    mView.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的代码量很少 简洁明了 易于维护 好的,关于请求数据我们就写到这里 有不好的的地方或者有问题的还请小伙伴多多留言指教

猜你喜欢

转载自blog.csdn.net/qq_28643195/article/details/107543528