Novate 一款Android RxStyle的网络框架

功能

  • 优化设计:加入基础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>{
            ‘‘‘‘‘‘‘
            });

}

 

时间: 2024-07-31 14:25:30

Novate 一款Android RxStyle的网络框架的相关文章

android基于开源网络框架asychhttpclient,二次封装为通用网络请求组件

网络请求是全部App都不可缺少的功能,假设每次开发都重写一次网络请求或者将曾经的代码拷贝到新的App中,不是非常合理,出于此目的,我希望将整个网络请求框架独立出来,与业务逻辑分隔开,这样就能够避免每次都要又一次编写网络请求,于是基于我比較熟悉的asynchttpclient又一次二次封装了一个网络请求框架. 思路:网络请求层唯一的功能就是发送请求,接收响应数据,请求取消,cookie处理这几个功能,二次助封装后这些功能能够直接调用封装好的方法就可以. 二次助封装代码例如以下: 1.功能接口: /

迅速上手Retrofit+RxJava+Okhttp+FastJson的网络框架[RRO]

Retrofit以其灵活的调用形式, 强大的扩展性著称. 随着RxAndroid的推出, Retrofit这样的可插拔式的网络框架因其可以灵活兼容各种数据解析器, 回调形式(主要还是RxJava啦)而更加风靡. 但是! Retrofit2官方虽有一堆集成第三方json解析的实现,比如gson-converter等等..但唯独就是没有FastJson, 这让我很不解..于是自己动手模仿gson-converter写了一个fastjson-converter, 并封装为一个更易用的适合Android

Android最流行的网络框架(原创)

Android程序最重要的模块就是网络部分,如何从网络上下载数据,如何将处理过的数据上传至网络,往往是android程序的关键环节. Android原生提供基于HttpClient和HttpUrlConnection的两种网络访问方式.利用原生的这两种方式编写网络代码,需要自己考虑很多,获取数据或许可以,但是如果要将手机本地数据上传至网络,根据不同的web端接口,需要组织不同的数据内容上传,给手机端造成了很大的工作量. 目前有几种快捷的网络开发开源框架,给我们提供了非常大的便利,他们应该是and

Android 网络框架Volley

Volley简介 在平时的开发过程中,我们的应用几乎总是在和网络打交道, 在android下的网络编程一般都是基于Http协议的 ,常见的是HttpURLConnection和HttpClient 两个类.因为用的比较多,很容易写一些重复的代码,于是就出现了一些比较好的网络框架,像AsyncHttpClient .Xutils,Universal-Image-Loader(网络图片加载框架)等.   Volley是Google在2013年I/O大会上退出的一款新的网络框架,在数据两不大但通信频繁

Android最流行的网络框架

转自:http://www.cnblogs.com/peiandsky/p/4376718.html Android程序最重要的模块就是网络部分,如何从网络上下载数据,如何将处理过的数据上传至网络,往往是android程序的关键环节. Android原生提供基于HttpClient和HttpUrlConnection的两种网络访问方式.利用原生的这两种方式编写网络代码,需要自己考虑很多,获取数据或许可以,但是如果要将手机本地数据上传至网络,根据不同的web端接口,需要组织不同的数据内容上传,给手

Android网络框架源码分析一---Volley

转载自 http://www.jianshu.com/p/9e17727f31a1?utm_campaign=maleskine&utm_content=note&utm_medium=mobile_author_hots&utm_source=recommendation 公司最近新起了一个项目,对喜欢尝鲜的我们来说,好处就是我们可以在真实的项目中想尝试一些新技术,验证想法.新项目对网络框架的选取,我们存在三种方案: 1.和我们之前的项目一样,使用Loader + HttpCli

Android网络框架之Retrofit + RxJava + OkHttp 变化的时代

1.什么是Retrofit框架? 它是Square公司开发的现在非常流行的网络框架,所以我们在导入它的包的时候都可以看到这个公司的名字,目前的版本是2. 特点: 性能好,处理快,使用简单,Retrofit 是安卓上最流行的HTTP Client库之一 使用REST API设计风格 支持 NIO(new i/o) 默认使用OKHttp处理网络请求,我觉得可以看成是OKHttp的增强. 随着Google对HttpClient的摒弃,和Volley的逐渐没落,OkHttp开始异军突起,而Retrofi

Android中网络框架的简单封装

个人博客 http://www.milovetingting.cn Android中网络框架的简单封装 前言 Android作为一款主要应用在移动终端的操作系统,访问网络是必不可少的功能.访问网络,最基本的接口有:HttpUrlConnection,HttpClient,而在后续的发展中,出现了Volley,OkHttp,Retrofit等网络封装库.由于各种原因,在实际的项目开发中,我们可能会需要在项目的版本迭代中,切换网络框架.如果对于网络框架没有好的封装,那么当需要切换网络框架时,可能就会

Android热门网络框架Volley详解

.Volley简介 volley的英文意思为‘群发’.‘迸发’.Volley是2013年谷歌官方发布的一款Android平台上的网络通信库.Volley非常适合一些数据量不大,但需要频繁通信的网络操作.使用Volley进行网络开发可以使我们的开发效率得到很大的提升,而且性能的稳定性也比较高.但是Volley不适用于文件的上传下载操作. Volley的特点: >1 使网络通信更快,更简单,更健壮: >2 Get/Post网络请求及网络图像的高效率异步请求: >3 可以对网络请求的优先级进行