RxJava+Retrofit+OkHttp 深入淺出-終極封裝一
背景
之前學習完Retrofit+Rxjava之後寫了一篇關於封裝的部落格,發出後受到大家的關注以及使用,由於不斷的完善之前的專案,所以決定把最新的專案封裝過程講解出來,供大家檢視!
原部落格地址: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:+'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 建立一個service定義請求的介面
/**
* service統一介面資料
* Created by WZG on 2016/7/16.
*/
public interface HttpService {
@POST("AppFiftyToneGraph/videoLink")
Observable<RetrofitEntity> getAllVedioBy(@Body boolean once_no);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 建立一個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();
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 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();
}
}
);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
終極封裝專欄
原始碼
建議
相關文章
- RxJava+Retrofit+OkHttp深入淺出-終極封裝三(檔案上傳)RxJavaHTTP封裝
- RxJava+Retrofit+OkHttp深入淺出-終極封裝五(資料持久化)RxJavaHTTP封裝持久化
- RxJava+Retrofit+OkHttp深入淺出-終極封裝七(異常處理)RxJavaHTTP封裝
- RxRetrofit - 終極封裝 - 深入淺出 & 異常封裝
- RxRetrofit-終極封裝-深入淺出&入門封裝
- RxRetrofit – 終極封裝 – 深入淺出 & 資料快取封裝快取
- RxRetrofit - 終極封裝 - 深入淺出 & 斷點續傳封裝斷點
- RxRetrofit - 終極封裝 - 深入淺出 & 檔案上傳封裝
- RxRetrofit - 終極封裝 - 深入淺出 & 資料快取封裝快取
- RxRetrofit-終極封裝-深入淺出&網路請求封裝
- RxRetrofit - 終極封裝 - 深入淺出 & 擴充套件 String封裝套件
- RxJava+Retrofit+OkHttp深入淺出-終極封裝六特殊篇(變種String替換Gson自由擴充套件)RxJavaHTTP封裝套件
- RxJava+Retrofit+OkHttp深入淺出-mvp(使用篇)RxJavaHTTPMVP
- Tomcat深入淺出——最終章(六)Tomcat
- 終極套娃 2.0 | 雲原生交付的封裝封裝
- Tomcat深入淺出(一)Tomcat
- 深入淺出OOD(一) (轉)
- 深入淺出FE(十四)深入淺出websocketWeb
- DRF終極封裝ViewSet和Router附教程PDF原始碼封裝View原始碼
- 深入淺出區塊鏈-陳浩-極客時間區塊鏈
- PostgreSQL VACUUM 之深入淺出 (一)SQL
- 深入淺出UML類圖(一)
- ActiveX深入淺出(一) (轉)
- Flutter 封裝:富文字 RichText 極簡封裝Flutter封裝
- 深入淺出 Runtime(一):初識
- 深入淺出記憶體馬(一)記憶體
- 深入淺出Websocket(一)Websocket協議Web協議
- 深入淺出RxJava(一:基礎篇)RxJava
- iOS極光推送封裝iOS封裝
- 深入淺出——MVCMVC
- 深入淺出mongooseGo
- HTTP深入淺出HTTP
- 深入淺出IO
- 深入淺出 RabbitMQMQ
- 深入淺出PromisePromise
- ArrayList 深入淺出
- mysqldump 深入淺出MySql
- 深入淺出decorator