Retrofit+Rxjava的簡(jiǎn)單使用

一、導(dǎo)入依賴

implementation'io.reactivex.rxjava2:rxjava:2.1.3'

implementation'com.squareup.retrofit2:retrofit:2.3.0'

implementation'com.squareup.retrofit2:converter-gson:2.3.0'

implementation'com.squareup.retrofit2:adapter-rxjava2:2.3.0'

implementation'io.reactivex.rxjava2:rxandroid:2.0.1'

二、.創(chuàng)建接口Apiservise?

?//使用注解設(shè)置請(qǐng)求方式(填入請(qǐng)求地址) @GET("nc/article/headline/T1348647909107/0-20.html")?

?//創(chuàng)建Observble方法并指定泛型它的泛型是需要解析數(shù)據(jù)的實(shí)體類(lèi)?

?Observable<TouTiao(泛型為你自己的實(shí)體類(lèi))> getTouTiao();?

三、在需要解析的地方獲取Retrofit對(duì)象?

?//獲取Retrofit對(duì)象?

Retrofit build = new Retrofit.Builder()//設(shè)置Uri(填入請(qǐng)求方式) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????.baseUrl("http://172.16.54.18:8080/")//添加Rxjava并開(kāi)啟 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????.addCallAdapterFactory(RxJava2CallAdapterFactory.create())//添加Gson析 ? ? ? ? ? ? ? ? ? ? ? .addConverterFactory(GsonConverterFactory.create(new Gson())).build();

//使用Retrofit對(duì)象開(kāi)啟定義好的接口Apiservse?

?Apiservce apiservce = build.create(Apiservce.class);

//通過(guò)開(kāi)啟的Apiservse對(duì)象獲取它的方法?

?apiservce.getTouTiaoData()

????????????????//因?yàn)榻馕鲂枰谧泳€程中進(jìn)行所以開(kāi)啟子線程

?????????????????.subscribeOn(Schedulers.newThread())

????????????????//得不到返回?cái)?shù)據(jù)時(shí)將再次訪問(wèn)

????????????????????.retry()

????????????????//通過(guò)觀察者模式返回主線程

?????????????????.observeOn(AndroidSchedulers.mainThread())

????????????????//通過(guò)子線程獲取到需要的數(shù)據(jù)

?????????????????.subscribe(new Consumer() {

? ? ? ? ? ? ? ? ? ? @Override

? ? ? ? ? ? ? ? ? ? public void accept(TouTiao touTiao) throws Exception {

????????????????//touTiao為獲取到的數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? ? data.getTouTiao(touTiao.getResult().getData());

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? });

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

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