RXjava+Retrofit 史上最精簡封裝(RxHttpUtils 1.x)使用說明

RxHttpUtils

繼上次SuperTextView之后的又一次封裝

Rxjava+Retrofit封裝,便捷使用

編寫原由:
項目用到Rxjava+Retrofit的使用,總是感覺封裝的不到位,網(wǎng)上也有很多類此的封裝,找來找去沒有一款適合自己的,無奈之下只能自己動手封裝一個使用起來超級簡單的網(wǎng)絡(luò)框架,個人感覺裝裝的還是挺不錯的,相比網(wǎng)絡(luò)上其他封裝簡單了不少,使用起來也很方便,源碼很少可以隨意修改源碼達(dá)到自己需要的效果,廢話不多說了,請看怎么使用!

源碼github地址

添加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é)果是以下情況的(當(dāng)然用戶可以根據(jù)自己的實際需求稍微修改一下代碼就能滿足自己的需求)

    code為錯誤狀態(tài)碼,為0時表示無錯誤; msg為錯誤描述信息

    注意:請求成功時,msg字段可有可無。
         
            {
            code: 0/400/401...,
            msg: 錯誤描述...,
            ...
            ...
            ...
            }
    如果你的服務(wù)器返回不是以上格式不要驚慌,下載源碼,源碼其實很簡單,自己重寫一個BaseResponse基類,根據(jù)自己需求處理,
    修改一下BaseSubscriber和ISubscriber中泛型繼承的類就行了

傳送門

系列文章

RxJava+Retrofit 史上最精簡封裝(RxHttpUtils 2.x)使用說明

RxJava+Retrofit 史上最精簡封裝(RxHttpUtils 2.x)---如何封裝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容