去年我写了一个Android网络框架Novate, 基于Retrofit和RxJava封装的链式网络框架, 支持okhttp的调用分格,又兼容Retrofit注入方式,并支持RxJava调用的链式操作, 不仅支持开发者自己扩展,还沿用Okhttp的高效的网络加载!最重要的novate自带的异常驱动机制,帮开发者解决了绝大部分的异常 错误处理,减少API或者业务代码出错的导致崩溃概率。

功能

  • 优化设计:加入基础API,减少Api冗余

  • 强大的缓存模式: 支持离线缓存, 无网络智能加载缓存,可配置是否需要缓存

  • cookie管理:自带cookie管理机制

  • 全方位请求模式:支持多种方式访问网络(get,put, post ,delete)

  • 轻送调用:支持表单,图文一起,json上传。

  • 文件传输:支持文件下载和上传,支持进度

  • 动态添加:支持请求头和参数统一添加,分别添加。

  • 结果处理:支持对返回结果的统一处理,自动帮你序列化复杂的数据。

  • 扩展性强:支持自定义的Retrofit的API,默认Api无法满足时可自定义自己的Service

  • 悠雅方便:支持统一请求访问网络的流程控制,以方便帮你完美加入Processbar进度。

  • RxJava结合: 结合RxJava,线程智能控制

集成

Gradle:

  • root:

    repositories { maven { url "https://jitpack.io" } jcenter() }

  • app:

       dependencies {compile 'com.tamic.novate:novate:1.5.4.3'}复制代码

RxAPi

主要处理请求的API,包含RxGet, RxPost, RxDelete,RxPut, RxBody,RxFrom, RxUpLoad,RxDownLoad.使用基本APi之前 请阅读对RxCallBack的介绍。

RxGet

进行get方式的请求调用,多种返回结果的方式供你选择,返回不同的数据类型参考请看原文链接RxCallBack的介绍。

基础使用:

返回String

  new Novate.Builder(this).baseUrl(“www.xxx.com/”).build().rxGet("service/path", parameters, new RxStringCallback() {});复制代码

返回Bean

 novate.rxGet("path or url", parameters, new RxResultCallback<JavaBean>() {});复制代码

返回List

    new Novate.Builder(this).baseUrl("http://xxx.com/").build().rxGet("service/getList", parameters, new RxListCallback<List<JavaBean>>() {...});复制代码

返回File

novate.rxGet("path or url", null, new RxFileCallBack(filePath, "name.jpg") {.....});复制代码

RxPost:

进行Post方式的请求调用

返回String

   novate.rxPost("path or url", parameters, new RxStringCallback() {.....});复制代码

返回Bean

 novate.rxPost("path or url", parameters, new RxResultCallback<ResultModel>() {});复制代码

返回List

 novate.rxPost("path or url", parameters, new RxListCallback<List<ResultModel>>() {....});复制代码

返回File

 novate.rxPost("path or url", null, new RxFileCallBack(filePath, "name.jpg") {....});复制代码

上传文件

这里主要介绍怎么使用Novate上传文件:

Novate提供了2种方式上传文件。body和part模式,Body不包含key值,part包含key值。

RxUploadWithBody

以Body方式post数据,可以上报文件,图片等。

   String mPath = uploadPath; //"you File path ";String url = "http:/xxx.com";novate.rxUploadWithBody(url, new File(mPath), new RxStringCallback() {....});}复制代码

RxUploadWithPart

上传文件,默认的key是 image

   String mPath = uploadPath; //"you File path ";String url = "http:/xxx.com";File file = new File(mPath);novate.rxUploadWithPart(url, file, new RxStringCallback() {....});复制代码

上传多文件:

RxUploadWithPartListByFile:

   List<File> fileList = new ArrayList<>();fileList.add(file);fileList.add(file);fileList.add(file);novate.rxUploadWithPartListByFile(url, fileList, new RxStringCallback() {});复制代码

图文一起

   RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("key1", V1).addFormDataPart("key2", v2).addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("image/*"), file)).build();novate.rxBody(url , requestBody, callback);复制代码

RxBody

 RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("key1", V1).addFormDataPart("key2", v2).addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("image/*"), file)).build();novate.rxBody(url , requestBody, callback);复制代码

下载文件

使用rxGet()实现下载:

  String downUrl = "http://wap.dl.pinyin.sogou.com/wapdl/hole/201512/03/SogouInput_android_v7.11_sweb.apk";novate.rxGet(downUrl, parameters, new RxFileCallBack(FileUtil.getBasePath(this), "test.apk") {});复制代码

RxDown()下载

    String downUrl = "http://wap.dl.pinyin.sogou.com/wapdl/hole/201512/03/SogouInput_android_v7.11_sweb.apk";new Novate.Builder(this).rxDownload(downUrl, new RxFileCallBack(FileUtil.getBasePath(this), "test.apk") {});复制代码

OkHTTP 姿势

喜欢okhtp姿势的朋友可以继续使用姿势:

  Request request =new Request.Builder().get().url("you url").build();novate.execute(request, new RxStringCallback() {});复制代码

Retrofit Api 姿势

Novate默认的API让你不爽时,Novate同样支持你自己Retrofit的ApiService

定义APi 同Retrofit的Api

新建MyApi

 public interface MyApi {@GET("url")Observable<MyBean> getdata(@QueryMap Map<String, String> maps);}复制代码

Execute

调用Call()

 MyApi myApi = novate.create(MyApi.class);novate.call(myApi.getdata(parameters),new BaseSubscriber<MyBean>{'''''''});}复制代码

更多API,可以去github(github.com/Tamicer/Nov…)阅读 欢迎star!有疑问可以直接留言或者提issues, 或者加QQ群45854294咨询。

Novate 一款Android RxStyle的网络框架相关推荐

  1. android novate乱码,Novate 一款Android RxStyle的网络框架

    功能优化设计:加入基础API,减少Api冗余 强大的缓存模式: 支持离线缓存, 无网络智能加载缓存,可配置是否需要缓存 cookie管理:自带cookie管理机制 全方位请求模式:支持多种方式访问网络 ...

  2. Android 常用的网络框架

    一.Android 常用的网络框架 本文转载自两点水的博客 大多数应用程序基本都需要连接网络,发送一些数据给服务端,或者从服务端获取一些数据.通常在 Android 中进行网络连接一般使用 Scoke ...

  3. Android常用的网络框架介绍和使用

    一.选择开源框架的原则 1.学习的成本:对该框架学习的时间长短,文档是否齐全的考虑  2.流行的程度:该开源框架是否流行,github 上 start 的个数,都是我们考量的标准  3.是否还在维护: ...

  4. android 可编辑的表格框架,smartTable-一款android自动生成表格框架---A Android automatically generated table framework...

    一款android自动生成表格框架功能介绍 1. 快速配置自动生成表格: 2. 自动计算表格宽高: 3. 表格列标题组合: 4. 表格固定左序列.顶部序列.第一行.列标题.统计行: 5. 自动统计,排 ...

  5. android几种网络框架的比较

    Android常用的网路框架:  大多数应用程序基本都需要连接网络,发送一些数据给服务端,或者从服务端获取一些数据.通常在 Android 中进行网络连接一般使用 Scoket 和HTTP,HTTP ...

  6. Android常用的网络框架

    Android常用的网路框架:  大多数应用程序基本都需要连接网络,发送一些数据给服务端,或者从服务端获取一些数据.通常在 Android 中进行网络连接一般使用 Scoket 和HTTP,HTTP ...

  7. 海康威视推出业界首款Android系统的网络键盘:Android键盘与传统键盘对比

    前两天,从海康威视官网的产品列表里发现海康推出了一款新的CMK(网络键盘 ),型号为DS-1600K(图1),看了一下产品简介和手册,使我对CMK.Android.海康等都有了新的认识.       ...

  8. Android网络框架-OkHttp3.0总结

    一.概述 OkHttp是Square公司开发的一款服务于android的一个网络框架,主要包含: 一般的get请求 一般的post请求 基于Http的文件上传 文件下载 加载图片 支持请求回调,直接返 ...

  9. Android 网络框架_常用的网络框架

    看了张哥(stormzhang)的博客之后,深有感触,又让我感慨了一番,而且发现张哥的博客英文跟汉字之间是有空格的,数字跟汉字之间也有空格,看起来很舒服很美观,张哥真的是把每一个细节都做的很好,所以身 ...

最新文章

  1. 【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )
  2. 光盘压制:八种加密方法保护光盘数据安全
  3. 17.2?Replication Implementation 复制实施:
  4. 32. Leetcode 141. 环形链表 (链表-双指针-环形链表)
  5. C#循环语句(for循环)
  6. android h5语音,html5录音支持pc和Android、ios部分浏览器,微信也是支持的,JavaScript getUserMedia...
  7. 小米王育军:小爱背后的小米语音技术
  8. Java语言基础41-44--泛型与集合
  9. Reaction to 构造之法 of Software Engineering From The First Chapter toThe Fifth Chapter
  10. beego框架开发投票网站(1) beego基础之运行逻辑
  11. canvas_requestAnimationFrame帧率显示fps
  12. 关于nginx报499的问题排查分析
  13. 硬盘坏道数据恢复-硬盘开盘数据恢复-天伟数据恢复
  14. 【论文笔记】CVR预估之ESMM模型
  15. dnf地下城虚拟机去虚拟化过鲁大师教程
  16. Excel+VBA+之快速上手(2)
  17. 一文详解激光雷达的障碍物检测
  18. 扛住100亿次请求——如何做一个“有把握”的春晚红包系统
  19. C语言笔试题(嵌入式软件开发)
  20. 矩阵的压缩存储(随机稀疏矩阵的建立和输出)

热门文章

  1. 多测师拱墅校区_肖sir_编写测试用例
  2. jquery 监听元素滚动_jQuery在滚动时保持元素在视图中
  3. XDAG iOS钱包Beta版本发布
  4. 细思极恐,原来12306架构这么牛逼
  5. 分类齐全,免费的数据接口
  6. 河南科技大学图书馆计算机,河南科技大学图书馆
  7. 树莓派(网络摄像头)4G网络720p高清图传(python3.7+SpringBoot-JavaNetty+Android-Mediacodec)
  8. 中国农产品如何披荆斩棘?
  9. 思科双核心交换机双出口防火墙配置案例
  10. 第二集,简单介项目绍目录