RxHttpUtils
繼上次SuperTextView之后的又一次封裝
Rxjava+Retrofit封裝,便捷使用
編寫原由:
項目用到Rxjava+Retrofit的使用,總是感覺封裝的不到位尤误,網(wǎng)上也有很多類此的封裝沾鳄,找來找去沒有一款適合自己的淆储,無奈之下只能自己動手封裝一個使用起來超級簡單的網(wǎng)絡(luò)框架潭千,個人感覺裝裝的還是挺不錯的躏率,相比網(wǎng)絡(luò)上其他封裝簡單了不少怀泊,使用起來也很方便茫藏,源碼很少可以隨意修改源碼達到自己需要的效果,廢話不多說了霹琼,請看怎么使用务傲!
添加Gradle依賴
先在項目根目錄的 build.gradle 的 repositories 添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
然后在dependencies添加:
dependencies {
...
compile 'com.github.lygttpod:RxHttpUtils:1.0.1'
}
使用說明
1、使用前自己的application類必須繼承BaseApplication
2枣申、自己定義的實體類需要繼承BaseResponse基類
3售葡、示例
Map<String ,Object> map = new TreeMap<>();
map.put("version","8.8");
map.put("phoneType","android");
RxHttpUtils
.getInstance()
.addHeader(map)
.createApi(ApiService.class)
.getBanner()
.compose(RxHelper.<Banner>io_main())
.subscribe(new CommonSubscriber<Banner>() {
@Override
protected void onError(String errorMsg) {
}
@Override
protected void onSuccess(Banner banner) {
Toast
.makeText(MainActivity.this
,banner.getBanners().get(0).getTitle()
,Toast.LENGTH_LONG)
.show();
}
});
4、參數(shù)說明
1忠藤、getInstance(your_base_url)
可以動態(tài)修改baseUrl
2挟伙、addHeader(map)
動態(tài)設(shè)置請求頭《可以不添加》
3、ApiService.class
是自己定義的
4模孩、getBanner()
需要需不需要添加參數(shù)根據(jù)自己的定義設(shè)置
5尖阔、io_main(loadingDialog)
可以設(shè)置自己請求開始的loading對話框
6、new CommonSubscriber<Banner>(loadingDialog)
需要顯示loading對話框的話這里需要傳入自己的Dialog
5榨咐、注意事項:適合請求結(jié)果是以下情況的(當然用戶可以根據(jù)自己的實際需求稍微修改一下代碼就能滿足自己的需求)
code為錯誤狀態(tài)碼诺祸,為0時表示無錯誤; msg為錯誤描述信息
注意:請求成功時,msg字段可有可無祭芦。
{
code: 0/400/401...,
msg: 錯誤描述...,
...
...
...
}
如果你的服務(wù)器返回不是以上格式不要驚慌筷笨,下載源碼,源碼其實很簡單,自己重寫一個BaseResponse基類胃夏,根據(jù)自己需求處理轴或,
修改一下BaseSubscriber和ISubscriber中泛型繼承的類就行了