android novate乱码,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的介绍。

基础使用:

返回Stringnew Novate.Builder(this)

.baseUrl(“www.xxx.com/”)

.build()

.rxGet("service/path", parameters, new RxStringCallback() {

});

返回Beannovate.rxGet("path or url", parameters, new RxResultCallback() {

});

返回Listnew Novate.Builder(this)

.baseUrl("http://xxx.com/")

.build()

.rxGet("service/getList", parameters, new RxListCallback>() {

...

});

返回File

novate.rxGet("path or url", null, new RxFileCallBack(filePath, "name.jpg") {

.....

});

RxPost:

进行Post方式的请求调用

返回Stringnovate.rxPost("path or url", parameters, new RxStringCallback() {

.....

});

返回Bean

novate.rxPost("path or url", parameters, new RxResultCallback() {

});

返回Listnovate.rxPost("path or url", parameters, new RxListCallback>() {

....

});

返回Filenovate.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是  imageString mPath = uploadPath; //"you File path ";

String url = "http:/xxx.com";

File file = new File(mPath);

novate.rxUploadWithPart(url, file, new RxStringCallback() {

....

});

上传多文件:

RxUploadWithPartListByFile:List 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);

RxBodyRequestBody 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 getdata(@QueryMap Map maps);

}

Execute

调用Call()MyApi myApi = novate.create(MyApi.class);

novate.call(myApi.getdata(parameters),

new BaseSubscriber{

'''''''

});

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深圳市收运体系运营管理_华为公司质量管理体系构建和运营实践

导语&#xff1a;质量是一个产品乃至一个企业存在的基石&#xff0c;华为公司的质量管理理念和体系是什么&#xff0c;华为的质量管理如何运营的呢&#xff1f;华为公司如何发挥质量与运营部的作用确保产品和流程高效运作&#xff0c;满足客户需求呢&#xff1f;快来看看吧&…

语言列表导出xlxs_学习五分钟,掌握一种新语言。

有没有一种语言&#xff0c;既实用还能够短时间内学会并应用起来&#xff1f;当然有。小阳今天要教给大家的是一种标记语言——Markdown。经常上网的你&#xff0c;一定有注意到很多网页排版整齐、简洁优美&#xff0c;各级标题区分明显&#xff0c;文章逻辑清晰。难道他们是使…

登录页面html5 css3 js代码,H5+css3+js搭建带验证码的登录页面

本文实例为大家分享了H5css3js搭建带验证码的登录页面&#xff0c;供大家参考&#xff0c;具体内容如下login.htmlEasyBuy后台管理系统.main_bar{width:1350px;height:350px;background-color:#6495ED;margin-top:10%;}#login_form{width:40%;height:100%;background-color:#11…

w3c html规范规范文档,前端开发规范

为什么要有web网站前端开发规范手册?因为人多不一定就力量大&#xff0c;还有可能一团糟。因此为了提升团队凝聚力&#xff0c;统一团队代码风格&#xff0c;优化团队协作效率&#xff0c;需要推出专门的《前端开发规范手册》来约束同一项目不同程序员的代码风格。制定《前端开…

公需科目必须学吗_要考电工证吗?电工技术必须学的33招,电工技术知识

理了一下电工常用的技术口决&#xff0c;希望能给大家带来帮助&#xff01;1&#xff0c;直接起动三相异步电动机的开关、熔断器的电流规格及电源容量最小值。电机满压直接起&#xff0c;铭牌电流五至七。容量不超十千瓦&#xff0c;否则设备撑不起。直接起动配开关&#xff0c…

html多级折叠菜单表单,JS实战篇之收缩菜单表单布局

获取节点的两种方式&#xff1a;1、通过event对象的srcElement属性&#xff1b;2、通过事件源对象用this传入。代码如下&#xff1a;收缩菜单 表单布局function list(dtNode){// var dtNode event.srcElement;var dlNode dtNode.parentNode;// alert(dtNode.nodeName"-…

html5 输入框有值无效,HTML5基础 input required 输入框内必须有内容

OS : Windows 10browser : Chrome 83.0.4103.116editor : Visual Studio Code 1.46.1typesetting : Markdown?htmlDocument?result?resource[ 教程 ] www.w3school.com.cn/html/index.asp[ 手册 ] www.w3cschool.cn/html5_reference.html[ 规范 ] www.runoob.com/html/html5…

网页设计 html鼠标悬停,利用css3实现的简单的鼠标悬停按钮

今天给大家分享一款基于css3的简单的鼠标悬停按钮。这款悬停按钮鼠标经过前边框是间断的。当鼠标经过的时候边框间隔消失。效果图如下&#xff1a;实现的代码。html代码&#xff1a;复制代码代码如下:Single gradient borderClick Me! Very long link text herePseudo elements…

计算机主机光盘故障,光驱常见故障及解决办法

很多人可能遇到过电脑不能识别驱的故障&#xff0c;那么小编就简单的给大家介绍一下&#xff0c;希望能帮助到大家。 原因分析: 该问题可能是注册表中存在错误的键值导致的。 终极解决方法: 提示&#xff1a;修改注册表有风险&#xff0c;请慎重操作。 1.按WinR键&#xff0c;输…

sts4创建spring项目_使用STS4新建springboot项目

1.配置maven&#xff0c;自定义setting文件和仓库&#xff0c;一定要用阿里云镜像地址下载依赖&#xff0c;官方太坑了&#xff0c;整了半天都没弄好&#xff0c;原来是下载太慢文件损坏alimavencentralaliyun mavenhttp://maven.aliyun.com/nexus/content/groups/public/pom 文…

工期计算机在线,工期日历计算器

工期日历计算器官方版工期日历计算器官方版是款适合很多行业中使用的做工工期计算工具。工期日历计算器中用户们可以设置开竣工日期后&#xff0c;自动计算工期&#xff0c;正好适合记录工期。工期日历计算器中还包括“起始日期、结束日期、间隔日起、工期天数”等计算功能。华…

python列表元素都加倍_关于python列表增加元素的三种操作方法

关于python列表增加元素的三种操作方法1、insert方法&#xff0c;该方法包含两个参数&#xff0c;第一个参数为插入的位置参数&#xff0c;第二个参数为插入内容a [0,0,0]b [1,2,3]a.insert(0,b)print a输出&#xff1a;[[1, 2, 3], 0, 0, 0]2、extend方法&#xff0c;该方法…

计算机应用基础山东省,2019年山东省中等职业学校对口升学考试:计算机文化基础+计算机应用基础模拟试卷...

&nbsp&nbsp[导读]:2019年山东省中等职业学校对口升学考试&#xff1a;计算机文化基础计算机应用基础模拟试卷。更多对口考试辅导资料请访问易考吧对口招生考试网山东省2019年中等职业学校对口升学考试&#xff1a;计算机文化基础计算机应用基础模拟试卷为了帮助广大考生…

小爱同学100个奇葩回复_杰理新一代蓝牙芯片将内置小爱同学,语音唤醒、降噪、连续对话加持蓝牙音箱...

在 11 月 20 日召开的小米 AI 生态峰会暨小爱同学 3.0 发布会上&#xff0c;珠海杰理科技作为小爱同学在芯片端赋能的代表企业&#xff0c;带来了 3 款内置小爱同学标准 SDK 的第二代降噪、语音唤醒蓝牙芯片。据杰理科技副总经理胡向军介绍&#xff0c;系列芯片将会于今年年底及…

react-native 显示html,react-native-webview加载本地H5

webview使用uri属性加载html资源。1.简单且常变动的需求可以选择加载远程网页地址2.当需要接入的网络资源很多&#xff0c;如一些独立的web应用&#xff0c;可以考虑本地接入针对本地接入方式进行记录。所有的静态资源如 css&#xff0c;js&#xff0c;img等都应该存储在本地。…

python一百行代码多少钱_用86行Python代码模拟太阳系

Python代码模拟的太阳系&#xff0c;包括了水星(Mercury), 金星(Venus)&#xff0c;地球(Earth)&#xff0c;月球(Moon)&#xff0c;火星(Mars)上面的动画是我用86行Python代码模拟的一个比较真实的太阳系&#xff0c;用到的基本原理就是N体问题&#xff0c;这是计算天体物理里…

html还原ui,前端高度还原设计稿(字体篇)

前言&#xff1a;以前前端都是拿到psd设计图&#xff0c;需要自己用ps切图&#xff0c;需要自己在psd上面一个个去量设计的大小和间距&#xff0c;而现在一般都是要求设计师把设计稿直接上传到蓝湖上面&#xff0c;通过蓝湖的标注来写出前端代码&#xff01;下面我就前端如何根…

计算机网络协议的特点,计算机网络传输层协议类型与特点

我们在上文中给大家简单介绍了计算机网络体系的七层结构&#xff0c;而今天我们就一起来了解一下&#xff0c;计算机网络传输层协议类型与特点。传输层涉及到两个重要的协议&#xff1a;UDP和TCP&#xff0c;本节我们重点介绍这两个协议。1、UDP协议1.1、UDP数据报格式UDP基本没…

ciaodvd数据集的简单介绍_人工智能进阶-CIFAR-10数据集介绍

CIFAR-10该数据集共有60000张彩色图像&#xff0c;这些图像是32*32&#xff0c;分为10个类&#xff0c;每类6000张图。这里面有50000张用于训练&#xff0c;构成了5个训练批&#xff0c;每一批10000张图&#xff1b;另外10000用于测试&#xff0c;单独构成一批。测试批的数据里…

已达成计算机的连接数最大值无法再,已达到计算机的连接数最大值,无法再同此远程计算机连接...

已达到计算机的连接数最大值,无法再同此远程计算机连接当打开文件共享时&#xff0c;弹出无法连接的对话框&#xff1a;“....已达到计算机的连接数最大值,无法再同此远程计算机连接”。对于server版的服务器系统&#xff0c;从未遇到过如此问题&#xff0c;而现在访问的服务器…