国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

淺談RxJava+Retrofit+OkHttp 封裝使用

2019-10-22 18:23:02
字體:
來源:轉載
供稿:網友

背景

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

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

效果

RxJava,Retrofit,OkHttp

懶人簡單的使用方式

為什么稱為懶人,因為你什么都不用做,直接按照一般案例寫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:+'

創建一個service定義請求的接口

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

創建一個retrofit對象

 //手動創建一個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();              }            }        );

源碼:傳送門-源碼地址

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜南县| 汾西县| 吴堡县| 盱眙县| 宁强县| 女性| 延川县| 舞阳县| 正阳县| 玉屏| 平泉县| 南昌县| 镇巴县| 金溪县| 河北省| 自治县| 高青县| 永寿县| 光泽县| 西和县| 宁都县| 万全县| 开原市| 镇江市| 济宁市| 靖安县| 石景山区| 无棣县| 星子县| 库尔勒市| 乌鲁木齐市| 台山市| 甘泉县| 天台县| 报价| 余姚市| 县级市| 临泉县| 江华| 玛多县| 峡江县|