Skip to content

DaYinTeamCode/RetrofitClinent

Repository files navigation

#Retrofit+Rxjava网络封装 DEMO下载地址

##框架使用说明

###一.项目中使用到的三方库

  • com.squareup.retrofit2:retrofit:2.1.0
  • com.squareup.retrofit2:adapter-rxjava:2.1.0
  • com.squareup.retrofit2:converter-gson:2.1.0
  • com.squareup.okhttp3:okhttp:3.2.0
  • com.squareup.okhttp3:logging-interceptor:3.3.1
  • io.reactivex:rxjava:1.1.8
  • io.reactivex:rxandroid:1.2.1
  • com.trello:rxlifecycle:0.6.1
  • com.trello:rxlifecycle-components:0.6.1

###二.使用步骤

1.在AndroidManifest.xml配置访问网络权限等操作

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

2.在Application类对NetWorkConfiguration进行配置,该类主要对网络参数进行基本配置,如:

NetWorkConfiguration configuration=new NetWorkConfiguration(this)
                                        .baseUrl(NetWorkApi.baseUrl)
                                        .isCache(true)
                                        .isDiskCache(true)
                                        .isMemoryCache(false);
HttpUtils.setConFiguration(configuration);

NetWorkConfiguration API

  • baseUrl(String) 设置网络BaseUrl地址
  • isCache(boolean) 设置是否开启缓存功能,true为开启,false为关闭
  • isDiskCache(boolean) 设置是否进行磁盘缓存
  • isMemoryCache(boolean) 设置是否进行内存缓存
  • memoryCacheTime(int) 设置内存缓存时间
  • diskCacheTime(int) 设置本地缓存时间
  • diskCaChe(File,int) 设置本地缓存路径以及最大缓存大小
  • connectTimeOut(int) 设置网络超时时间
  • connectionPool(int,int,TimeUnit)设置网络线程池
  • certificates(InputStream...) 设置Https客户端证书访问

#####注:如果不进行配置,进行默认设置网络参数!

3.针对进行网络访问,通过链式编程进行参数设置以及获取服务器返回数据! 如:

       HttpUtils.getInstance(mView.getContext())
              .setLoadDiskCache(true)
              .setLoadMemoryCache(false)
              .getRetofitClinet()
              .builder(DouYuApi.class)
              .getColumnDetail(ParamsMapUtils.getColumnDatail("game"))
//               进行预处理
              .compose(new DefaultTransformer<List<ColumnDetail>>())
//               绑定当前activity或者fragment 与Observable 的生命周期
              .compose(mView.<List<ColumnDetail>>bindToLifecycle())
              .subscribe(new RxSubscriber<List<ColumnDetail>>() {
                 @Override
                 public void onSuccess(List<ColumnDetail> columnDetails) {
                      L.e("数据为:" + columnDetails.toString());
                 }
                 @Override
                 public void onError(ResponeThrowable e) {
                      L.DEBUG = true;
                      L.e("错误信息:" + e.message);
                 }
             });

###HttpUtils API

  • getInstance(Context) 获取HttpUtils实例
  • setConFiguration(NetWorkConfiguration) 设置网络配置器
  • setLoadDiskCache(boolean) 设置断网时是否加载本地缓存数据
  • setLoadMemoryCache(boolean) 设置有网络时是否优先加载内存缓存
  • getRetofitClinet() 创建RetrofitClient对象
  • setCertificates(InputStream...)设置Https客户端证书访问
  • setDBugLog(boolean) 设置是否打印网络日志
  • addCookie() 设置cookie

###RetrofitClient API

  • setBaseUrl(String) 设置BaseUrl地址
  • builder(Class<?>) 创建Service对象

###RxJava API compose:是唯一一个能够从数据流中得到原始Observable的操作符,所以,那些需要对整个数据流产生作用的操作(比如,subscribeOn()和observeOn())需要使用compose()来实现。

.compose(new DefaultTransformer<List<ColumnDetail>>())

作用:对服务器返回的数据进行预处理 1.数据获取正常-->call方法中根据与服务器约定判断数据是否合法 !不合法,抛出自定义异常进行处理! 2.数据获取失败-->onErrorResumeNext方法,抛出自定义异常进行处理!

.compose(mView.<List<ColumnDetail>>bindToLifecycle())

作用:Activity或者Framgnet的生命周期与Observable进行绑定

###RxSubscriber 回调类

     @Override
     public void onSuccess(List<ColumnDetail> columnDetails) {
          L.e("数据为:" + columnDetails.toString());
     }

如果网络数据访问正常回调onSuccess方法,获取到对应的Java Bean

       @Override
       public void onError(ResponeThrowable e) {
            L.DEBUG = true;
            L.e("错误信息:" + e.message);
       }

如果网络数据访问失败回调onError方法,获取到自定义异常ResponeThrowable信息,可以通过e获取到code和message等!

About

MVP+RxJava+Retrofit+OkHttp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages