超简单MVP+网络请求框架(Retrofit2+Rxjava2+OkHttp3)

依赖

    //Gson
    implementation 'com.google.code.gson:gson:2.4'

    //okhttp
    implementation 'com.squareup.okhttp3:okhttp:3.9.0'
    //日志拦截器
    implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    //配置retrofit2.0
    implementation 'com.squareup.retrofit2:retrofit:+'
    //ConverterFactory的Gson依赖包
    implementation "com.squareup.retrofit2:converter-gson:2.3.0"
    //Rxjava2需要依赖
    implementation 'io.reactivex.rxjava2:rxjava:+'
    implementation 'io.reactivex.rxjava2:rxandroid:+'
    //让retrofit支持Rxjava2
    implementation 'com.squareup.retrofit2:adapter-rxjava2:+'

权限

 <uses-permission android:name="android.permission.INTERNET" />

存放接口的类

public class ApiConstant {
   

    public static final Integer SUCCEDCODE = 20000;

    public static final String BASE_URL = "https://www.zhaobanzhilian.com/api/";//通用前缀
}

api

    @GET
    Observable<ResponseBody> get(@Url String url);

    @FormUrlEncoded
    @POST
    Observable<ResponseBody> post(@Url String url, @FieldMap Map<String, Object> map);

    @PUT
    Observable<ResponseBody> put(@Url String url, @QueryMap Map<String, String> map);

    @DELETE
    Observable<ResponseBody> delete(@Url String url);

    @POST
    Observable<ResponseBody> Image(@Url String url, @Body MultipartBody body);

callback

public interface CallBack<T> {
   
    void success(T data);
    void error(T error);
}

model

public interface Model<T> {
   
    void onGetSetData(String url, Class clas, CallBack callBack);

    void onPostSetDataBody(String url,Map<String, Object> body, Class clas, CallBack callBack);

    void onDeleteSetData(String url, Class clas, CallBack callBack);

    void onPutSetData(String url, Map<String, String> map, Class clas, CallBack callBack);

    void imgList(String url,List<Object> list, Class clas, CallBack callBack);

    void imgPath(String url,String path, Class clas, CallBack callBack);
}

ModelImpl

public class ModelImpl implements Model {
   
    @Override
    public void onGetSetData(String url, final Class clas, final CallBack callBack) {
   
        RetrofitManager.getInstence().get(url, new RetrofitManager.HttpListener() {
   
            @Override
            public void onSuccess(String data) {
   
                Object o = new Gson().fromJson(data, clas);
                callBack.success(o);
            }

            @Override
            public void onFail(String error) {
   
                callBack.error(error);
            }
        });
    }

    @Override
    public void onDeleteSetData(String url, final Class clas, final CallBack callBack) {
   
        RetrofitManager.getInstence().delete(url, new RetrofitManager.HttpListener() {
   
            @Override
            public void onSuccess(String data) {
   
                Object o = new Gson().fromJson(data, clas);
                callBack.success(o);
            }

            @Override
            public void onFail(String error) {
   
                callBack.error(error);
            }
        });
    }

    @Override
    public void imgList(String url, List list, Class clas, CallBack callBack) {
   
        RetrofitManager.getInstence(
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值