RxJava+Retrofit+Okhttp的使用心得

前言

現(xiàn)在的軟件開發(fā)世界里已經(jīng)出現(xiàn)了很多好用高效的開發(fā)框架尾抑,作為程序員的我們要隨時保持警惕歇父,緊跟潮流蒂培,學(xué)會使用大牛們所開發(fā)出來的東西,目前市場上對應(yīng)用RxJava+Retrofit+Okhttp(個人認(rèn)為優(yōu)點(diǎn)主要在業(yè)務(wù)處理與邏輯的簡化榜苫,小伙伴可以細(xì)心琢磨哦)已經(jīng)成為一種主流护戳,不會的小伙伴可以一起探討學(xué)習(xí)哦。


這個我推薦大家看看四篇文章

RxJava詳解

Retrofit官方文檔

Retrofit詳解

Okhttp詳解

那么接下來如何運(yùn)用RxJava+Retrofit+Okhttp完成一次網(wǎng)絡(luò)請求呢垂睬,之前我也看了很多文章媳荒,但是做為剛?cè)腴T的我使用起來還是陌生,有些地方還是不太明白驹饺,這里不得不感謝一下我的同事钳枕,他這兩天確實(shí)拓寬了我很多的眼界,讓我對這個框架大致有了一個認(rèn)識赏壹。

按照傳統(tǒng)網(wǎng)絡(luò)處理方式么伯,我們一般或通過okhttp提交請求,對與請求后的數(shù)據(jù)處理卡儒,我想大多數(shù)人都是利用Handler機(jī)制,沒錯俐巴,Handler也是很不錯的骨望,但是考慮一種情況,當(dāng)還在網(wǎng)絡(luò)請求的時候欣舵,應(yīng)用突然結(jié)束怎么辦擎鸠,那這樣豈不是要造成內(nèi)存泄漏。而RxJava就可以很好的處理這個問題缘圈,那他是怎么做的呢劣光,就是RxJava其實(shí)有兩種對象在里面,就是大家所說的被觀察者和觀察者糟把,兩者之間是通過訂閱產(chǎn)生聯(lián)系绢涡,這個時候只要我們在應(yīng)用結(jié)束的時候取消訂閱,那么這個問題就解決了遣疯。

好話不多說雄可,那怎么才能利用這種框架完成網(wǎng)絡(luò)請求以及更加簡潔的刷新界面呢?

1.首先我們先做初始化



```

private static final int DEFAULT_TIME_OUT=5;//超時時間

? ? private static final int DEFAULT_READ_OUT=10;//讀超時時間

? ? private RetrofitmRetrofit=null;

? ? private static RetrofitServiceManagermRetrofitServiceManager=null;

? //構(gòu)造方法中去初始化Retrifit和Okhttp

? private RetrofitServiceManager(){

OkHttpClient.Builder builder=new OkHttpClient.Builder();

? ? ? HttpLoggingInterceptor httpLoggingInterceptor=new HttpLoggingInterceptor();

? ? ? httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);

? ? ? builder.addInterceptor(httpLoggingInterceptor);

? ? ? builder.connectTimeout(DEFAULT_TIME_OUT, java.util.concurrent.TimeUnit.SECONDS);

? ? ? builder.readTimeout(DEFAULT_READ_OUT, java.util.concurrent.TimeUnit.SECONDS);

? ? ? //添加公共參數(shù)攔截器

// HttpCommonInterceptor httpCommonInterceptor;

//初始化Retrofit對象

? ? ? mRetrofit=new Retrofit.Builder()

.client(builder.build())//Okhttp對象

? ? ? ? ? ? ? .addCallAdapterFactory(RxJava2CallAdapterFactory.create())

.addConverterFactory(GsonConverterFactory.create())

.baseUrl(Constant.Base_url)

.build();

? }

//獲取實(shí)例

? ? public static RetrofitServiceManagergetInstance(){

if(mRetrofitServiceManager==null)

return new RetrofitServiceManager();

? ? ? ? return mRetrofitServiceManager;

? ? }

/**用于生成接口實(shí)例*/

? ? public T create(Class service){

return mRetrofit.create(service);

? ? }


```


說明

初始化Okhttp和Retrofit,Retrofit支持RxJava2響應(yīng)式的請求操作缠犀。create方法用生成service層的接口實(shí)例数苫。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市辨液,隨后出現(xiàn)的幾起案子虐急,更是在濱河造成了極大的恐慌,老刑警劉巖滔迈,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件止吁,死亡現(xiàn)場離奇詭異被辑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)赏殃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門敷待,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仁热,你說我怎么就攤上這事榜揖。” “怎么了抗蠢?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵举哟,是天一觀的道長。 經(jīng)常有香客問我迅矛,道長妨猩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任秽褒,我火速辦了婚禮壶硅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘销斟。我一直安慰自己庐椒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布蚂踊。 她就那樣靜靜地躺著约谈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪犁钟。 梳的紋絲不亂的頭發(fā)上棱诱,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機(jī)與錄音涝动,去河邊找鬼迈勋。 笑死,一個胖子當(dāng)著我的面吹牛醋粟,可吹牛的內(nèi)容都是我干的粪躬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼昔穴,長吁一口氣:“原來是場噩夢啊……” “哼镰官!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吗货,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤泳唠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宙搬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體笨腥,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拓哺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了脖母。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片士鸥。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谆级,靈堂內(nèi)的尸體忽然破棺而出烤礁,到底是詐尸還是另有隱情,我是刑警寧澤肥照,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布脚仔,位于F島的核電站,受9級特大地震影響舆绎,放射性物質(zhì)發(fā)生泄漏鲤脏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一吕朵、第九天 我趴在偏房一處隱蔽的房頂上張望猎醇。 院中可真熱鬧,春花似錦努溃、人聲如沸硫嘶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至则拷,卻和暖如春贡蓖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背煌茬。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工斥铺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坛善。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓晾蜘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親眠屎。 傳聞我的和親對象是個殘疾皇子剔交,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)改衩,斷路器岖常,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 前言RxJava和Retrofit也火了一段時間了,不過最近一直在學(xué)習(xí)ReactNative和Node相關(guān)的姿勢葫督,...
    AFinalStone閱讀 545評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,770評論 25 707
  • 江郎才盡已無招竭鞍, 忍看落花水上漂板惑。 一筆難把情繪出, 萬紅總被雨折夭偎快。 世事無常人皆曉冯乘, 人心叵測誰能料? 縱使命...
    讀書無緣主沉浮閱讀 288評論 0 4
  • 海口市原副市長李杰受賄900余萬元被判刑十一年惋戏。法院審理查明领追,2004年至2015年,李杰利擔(dān)任合旆辏口市交通局局長等...
    力量時評閱讀 293評論 0 1