android novate乱码,Novate 一款Android RxStyle的网络框架
功能優(yōu)化設計:加入基礎API,減少Api冗余
強大的緩存模式: 支持離線緩存, 無網(wǎng)絡智能加載緩存,可配置是否需要緩存
cookie管理:自帶cookie管理機制
全方位請求模式:支持多種方式訪問網(wǎng)絡(get,put, post ,delete)
輕送調(diào)用:支持表單,圖文一起,json上傳。
文件傳輸:支持文件下載和上傳,支持進度
動態(tài)添加:支持請求頭和參數(shù)統(tǒng)一添加,分別添加。
結果處理:支持對返回結果的統(tǒng)一處理,自動幫你序列化復雜的數(shù)據(jù)。
擴展性強:支持自定義的Retrofit的API,默認Api無法滿足時可自定義自己的Service
悠雅方便:支持統(tǒng)一請求訪問網(wǎng)絡的流程控制,以方便幫你完美加入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方式的請求調(diào)用,多種返回結果的方式供你選擇,返回不同的數(shù)據(jù)類型參考請看原文鏈接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方式的請求調(diào)用
返回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數(shù)據(jù),可以上報文件,圖片等。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()實現(xiàn)下載: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姿勢的朋友可以繼續(xù)使用姿勢: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
調(diào)用Call()MyApi?myApi?=?novate.create(MyApi.class);
novate.call(myApi.getdata(parameters),
new?BaseSubscriber{
'''''''
});
}
總結
以上是生活随笔為你收集整理的android novate乱码,Novate 一款Android RxStyle的网络框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android7.0 蓝牙定位,Blue
- 下一篇: 串口 多个activity 安卓_And