基于Retrofit2+RxJava实现简单易用的网络请求框架

描述:

本库是一款基于Retrofit2+RxJava实现简单易用的网络请求框架,结合android平台特性的网络封装库,采用api链式调用一点到底,集成cookie管理,多种缓存模式,极简https配置,上传下载进度显示,请求错误自动重试,请求携带token、时间戳、签名sign动态配置,自动登录成功后请求重发功能,3种层次的参数设置默认全局局部,默认标准ApiResult同时可以支持自定义的数据结构,已经能满足现在的大部分网络请求

  • 比Retrofit使用更简单、更易用。
  • 采用链式调用一点到底
  • 加入基础ApiService,减少Api冗余
  • 支持动态配置和自定义底层框架Okhttpclient、Retrofit.
  • 支持多种方式访问网络GET、POST、PUT、DELETE等请求协议
  • 支持网络缓存,六种缓存策略可选,涵盖大多数业务场景
  • 支持固定添加header和动态添加header
  • 支持添加全局参数和动态添加局部参数
  • 支持文件下载、多文件上传和表单提交数据
  • 支持文件请求、上传、下载的进度回调、错误回调,也可以自定义回调
  • 支持默认、全局、局部三个层次的配置功能
  • 支持任意数据结构的自动解析
  • 支持添加动态参数例如timeStamp时间戳、token、签名sign
  • 支持自定义的扩展API
  • 支持多个请求合并
  • 支持Cookie管理
  • 支持异步、同步请求
  • 支持Https、自签名网站Https的访问、双向验证
  • 支持失败重试机制,可以指定重试次数、重试间隔时间
  • 支持根据ky删除网络缓存和清空网络缓存
  • 提供默认的标准ApiResult解析和回调,并且可自定义ApiResult
  • 支持取消数据请求,取消订阅,带有对话框的请求不需要手动取消请求,对话框消失会自动取消请求
  • 支持请求数据结果采用回调和订阅两种方式
  • api设计上结合http协议和android平台特点来实现,loading对话框,实时进度条显示
  • 返回结果和异常统一处理
  • 结合RxJava,线程智能控制

应用截图:

687474703a2f2f696d672e626c6f672e6373646e2e6e65742f3230313730363038323130383236363232

32343035393136

使用说明:

方式一:
 //EasyHttp.post("/v1/app/chairdressing/skinAnalyzePower/skinTestResult")
 EasyHttp.get("/v1/app/chairdressing/skinAnalyzePower/skinTestResult")
                .readTimeOut(30 * 1000)//局部定义读超时
                .writeTimeOut(30 * 1000)
                .connectTimeout(30 * 1000)
                .params("name","张三")
                .timeStamp(true)
                .execute(new SimpleCallBack<SkinTestResult>() {
                    @Override
                    public void onError(ApiException e) {
                        showToast(e.getMessage());
                    }

                    @Override
                    public void onSuccess(SkinTestResult response) {
                        if (response != null) showToast(response.toString());
                    }
                });

手动创建请求对象

 //GetRequest 、PostRequest、DeleteRequest、PutRequest
 GetRequest request = new GetRequest("/v1/app/chairdressing/skinAnalyzePower/skinTestResult");
        request.readTimeOut(30 * 1000)//局部定义读超时
                .params("param1", "param1Value1")
                .execute(new SimpleCallBack<SkinTestResult>() {
                    @Override
                    public void onError(ApiException e) {

                    }

                    @Override
                    public void onSuccess(SkinTestResult response) {

                    }
                });

 

源码下载:https://github.com/zhou-you/RxEasyHttp

 

未经允许不得转载:安度博客 » 基于Retrofit2+RxJava实现简单易用的网络请求框架

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址