亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談RxJava+Retrofit+OkHttp 封裝使用

 更新時間:2017年11月17日 09:35:18   作者:wzgiceman  
本篇文章主要介紹了淺談RxJava+Retrofit+OkHttp 懶人方式使用,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

背景

之前學習完Retrofit+Rxjava之后寫了一篇關于封裝的博客,發(fā)出后受到大家的關注以及使用,由于不斷的完善之前的項目,所以決定把最新的項目封裝過程講解出來,供大家查看!

Retrofit介紹:

Retrofit和okHttp師出同門,也是Square的開源庫,它是一個類型安全的網絡請求庫,Retrofit簡化了網絡請求流程,基于OkHtttp做了封裝,解耦的更徹底:比方說通過注解來配置請求參數,通過工廠來生成CallAdapter,Converter,你可以使用不同的請求適配器(CallAdapter), 比方說RxJava,Java8, Guava。你可以使用不同的反序列化工具(Converter),比方說json, protobuff, xml, moshi等等。

官網 http://square.github.io/retrofit/

github https://github.com/square/retrofit

效果

懶人簡單的使用方式

為什么稱為懶人,因為你什么都不用做,直接按照一般案例寫rx和retrofit的使用

引入需要的包

  /*rx-android-java*/
  compile 'io.reactivex:rxjava:+'
  compile 'com.squareup.retrofit:adapter-rxjava:+'
  compile 'com.trello:rxlifecycle:+'
  compile 'com.trello:rxlifecycle-components:+'
  /*rotrofit*/
  compile 'com.squareup.retrofit2:retrofit:+'
  compile 'com.squareup.retrofit2:converter-gson:+'
  compile 'com.squareup.retrofit2:adapter-rxjava:+'
  compile 'com.google.code.gson:gson:+'

創(chuàng)建一個service定義請求的接口

/**
 * service統一接口數據
 * Created by WZG on 2016/7/16.
 */
public interface HttpService {
  @POST("AppFiftyToneGraph/videoLink")
  Observable<RetrofitEntity> getAllVedioBy(@Body boolean once_no);
}

創(chuàng)建一個retrofit對象

 //手動創(chuàng)建一個OkHttpClient并設置超時時間
    okhttp3.OkHttpClient.Builder builder = new OkHttpClient.Builder();
    builder.connectTimeout(5, TimeUnit.SECONDS);

    Retrofit retrofit = new Retrofit.Builder()
        .client(builder.build())
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
        .baseUrl(HttpManager.BASE_URL)
        .build();

http請求處理

//    加載框
    final ProgressDialog pd = new ProgressDialog(this);

    HttpService apiService = retrofit.create(HttpService.class);
    Observable<RetrofitEntity> observable = apiService.getAllVedioBy(true);
    observable.subscribeOn(Schedulers.io()).unsubscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
        .subscribe(
            new Subscriber<RetrofitEntity>() {
              @Override
              public void onCompleted() {
                if (pd != null && pd.isShowing()) {
                  pd.dismiss();
                }
              }

              @Override
              public void onError(Throwable e) {
                if (pd != null && pd.isShowing()) {
                  pd.dismiss();
                }
              }

              @Override
              public void onNext(RetrofitEntity retrofitEntity) {
                tvMsg.setText("無封裝:\n" + retrofitEntity.getData().toString());
              }

              @Override
              public void onStart() {
                super.onStart();
                pd.show();
              }
            }

        );

源碼:傳送門-源碼地址

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android studio button 按鈕 四種綁定事件的方法【實例代碼】

    Android studio button 按鈕 四種綁定事件的方法【實例代碼】

    這篇文章主要介紹了Android studio button 按鈕 四種綁定事件的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • Android中關于CoordinatorLayout的一些實用布局技巧

    Android中關于CoordinatorLayout的一些實用布局技巧

    大家都知道CoordinatorLayout是一個“加強版”的 FrameLayout,那么下面這篇文章主要給大家分享了Android中關于CoordinatorLayout的一些布局技巧,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • Android編程操作手機通訊錄的方法示例

    Android編程操作手機通訊錄的方法示例

    這篇文章主要介紹了Android編程操作手機通訊錄的方法,涉及Android權限控制及通訊錄讀取等相關操作技巧,需要的朋友可以參考下
    2017-07-07
  • Flutter實現頂部導航欄功能

    Flutter實現頂部導航欄功能

    這篇文章主要為大家詳細介紹了Flutter實現頂部導航欄功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • android使用FlipAnimation實現3D垂直翻轉動畫

    android使用FlipAnimation實現3D垂直翻轉動畫

    這篇文章主要為大家詳細介紹了android使用FlipAnimation實現3D垂直翻轉動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android自定義封裝banner組件

    Android自定義封裝banner組件

    這篇文章主要為大家詳細介紹了Android自定義封裝banner組件的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Android組件創(chuàng)建DrawerLayout導航

    Android組件創(chuàng)建DrawerLayout導航

    這篇文章主要為大家詳細介紹了Android組件創(chuàng)建DrawerLayout導航的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android中使用Kotlin實現一個簡單的登錄界面

    Android中使用Kotlin實現一個簡單的登錄界面

    Kotlin 是一種在 Java 虛擬機上運行的靜態(tài)類型編程語言,被稱之為 Android 世界的Swift,由 JetBrains 設計開發(fā)并開源。接下來本文通過實例代碼給大家講解Android中使用Kotlin實現一個簡單的登錄界面,一起看看吧
    2017-09-09
  • Android Studio利用AChartEngine制作餅圖的方法

    Android Studio利用AChartEngine制作餅圖的方法

    閑來無事,發(fā)現市面上好多app都有餅圖統計的功能,得空自己實現一下,下面這篇文章主要給大家介紹了關于Android Studio利用AChartEngine制作餅圖的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-10-10
  • Android實現聲音采集回聲與回聲消除

    Android實現聲音采集回聲與回聲消除

    這篇文章主要為大家詳細介紹了Android實現聲音采集回聲與回聲消除,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評論