亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Android > 正文

RxRetroHttp為多套API請求適配而生

2019-10-21 21:25:39
字體:
來源:轉載
供稿:網(wǎng)友

前言

"后端更新?lián)Q代,新接口返回全用新的規(guī)則,老接口不變!"。。。WTF!

“我們的這幾個網(wǎng)站,要做一個統(tǒng)一的App,后端都是現(xiàn)成的,這是API文檔。”。。。幾個網(wǎng)站的API規(guī)范和請求Host地址居然完全不一樣?。。。WTF!

。。。千萬只草泥馬呼嘯而過。。。實時切換BaseUrl?Retrofit注解全加上@Url?。。。無奈。。。

雖然說現(xiàn)在已經(jīng)有很多Http請求框架了,也有很多針對RxJava+Retrofit的二次封裝,其中也不乏很多動態(tài)替換BaseUrl的框架。但是如果需要更好的處理除了BaseUrl之外需求,比如針對各套API規(guī)則,不同的攔截處理、不同的返回異常邏輯處理等等,大多沒有給予解決方案。因此,RxRetroHttp應運而生。

總覽

我們先來看看,RxRetroHttp是通過什么方式處理這種情況的。

初始化

首先,大多庫的必備階段:初始化。我們先來看看初始化的代碼,在Application的onCreate中執(zhí)行

RxRetroHttp.init(this)      .setBaseUrl("http://api1.com/")      .setApiResultClass(Api1Result.class)      .generateRetroClient()

這樣,初始化就做完了。。。此處應有掌聲。。。

“我掌你大爺?。?!說好的處理多套API規(guī)則呢!?。?rdquo;

額咳。。??陀^莫急。。。待我徐徐道來

通過剛剛的初始化,你已經(jīng)設置了App中主API請求的基本配置。如果你的App中,就像前言里描述的那樣,需要對接多套API規(guī)則,那么在初始化之后,再加入如下代碼

RxRetroHttp.getInstance()      .setBaseUrl("https://api2.com/")      .setApiResultClass(Api2Result.class)      .generateRetroClient("API2")

相信大家已經(jīng)看出區(qū)別了吧,沒錯,就是在generateRetroClient這個方法中,加入了一個Tag,而這個Tag,就是處理多套API請求的關鍵。

在setApiResultClass方法中,傳入的就是對于API規(guī)范的基類,具體情況會在后面講到。

調(diào)用

初始化完成后,如何調(diào)用呢

RxRetroHttp.create(Api2Service.class).getApi2Info()

我們可以看到,這就是Retrofit風格的調(diào)用方式。

在這里,Api2Service也就是Retrofit風格的ApiService,但是也略有不同

@RetroTag("API2")public interface Api2Service {  @GET("test/info")  Observable<Api2Info> getApi2Info();}

我們看看不同在哪,下面是純Retrofit的書寫方式

public interface Api2Service {  @GET("test/info")  Observable<Api2Result<Api2Info>> getApi2Info();}

沒錯,區(qū)別就在于:

1、省去了基類的這一層包裹。這么做的原因是,個人認為,在ApiService這一層,每個接口定義都需要設置ApiResult包裹是不人性的,哈哈哈。

2、RetroTag接口,用于指示Tag,當然這是對于初始化時設置了Tag的API請求。

當然,如果你還是希望以基類包裹的方式,也是可以的,那就是在初始化的時候,不調(diào)用setApiResultClass方法就行了。

另外,如果你不想增加RetroTag注解,也是可以的,那在調(diào)用的時候,就需要調(diào)用另一個方法,放入Tag,如下:

RxRetroHttp.create(Api2Service.class, "API2").getApi2Info()

ApiResult

現(xiàn)在,我們來看看ApiResult。

在setApiResultClass方法中傳入的,是實現(xiàn)了IApiResult接口的請求返回基類,簡單的樣例代碼如下

public class Api2Result<T> implements IApiResult<T> {  private int code;  private String msg;  private T result;  @Override  public boolean isSuccess(){    return code == 1;  }  @Override  public T getData(){    return result;  }  @Override  public String getResultMsg(){    return msg;  }  @Override  public String getResultCode(){    return String.valueOf(code);  }  @Override  public String getDataField(){    return "result";  }}

其對應的返回json如下

{  code: 1,  msg: "請求成功",  result: {    ...  }}

這是一個較為常用的API返回格式,而我們所要做的,就是實現(xiàn)幾個基本方法,其中,isSuccess()返回的是請求成功的判斷,getData()返回的是請求到的具體數(shù)據(jù),getResultMsg()返回的是API請求信息,getResultCode()表示返回碼,getDataField()返回的是json數(shù)據(jù)中表示具體數(shù)據(jù)的字段(在上面的json例子中,就是“result”)。

更多配置

Http請求不可能沒有相關的配置,而本框架并沒有為大家內(nèi)置很多配置方法,原因是,我認為這并不是本框架的主要功能。當然,大家也是可以進行自定義配置的,配置方式如下:

RxRetroHttp.init(this).setXXX().setXXX();Retrofit.Builder retrofitBuilder = RxRetroHttp.getRetrofitBuilder();retrofitBuilder.setXXX().setXXX();OkHttpClient.Builder okHttpBuilder = RxRetroHttp.getOkHttpClientBuilder();okHttpBuilder.setXXX().setXXX();RxRetroHttp.getInstance().generateRetroClient();//RxRetroHttp.getInstance().generateRetroClient("YourTag")

當然各套API請求之間的配置也是隔離的??蚣芤蔡峁┝艘恍┖唵蔚目旖菖渲梅椒?,比如addInterceptor、addNetworkInterceptor等,更多的配置可以通過上述方式,獲取retrofitBuilder和okHttpBuilder來配置。

通過Tag的方式或許不是最好的方式,我也會繼續(xù)嘗試其他的方式,以對比便利性,如果大家有更好的方案提議,也希望能夠留言告訴我,感謝大家。

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美激情日韩图片| 情趣视频在线观看| 青青草国产在线播放| 亚洲欧美综合精品久久成人| 久久久美女视频| 日本视频免费在线| 蜜桃av噜噜一区| 中文字幕久久久久| 91九色老女人| 一区在线免费| 99亚洲伊人久久精品影院红桃| 91夜夜蜜桃臀一区二区三区| 美日韩黄色大片| 久久精品国产久精国产爱| 日韩伦理在线免费观看| 欧美一区二区免费视频| 久久伊人蜜桃av一区二区| 亚洲精品视频一区二区三区| 国产精品久久久亚洲第一牛牛| 色偷偷av一区二区三区| 羞羞的视频在线看| 国产香蕉一区二区三区在线视频| 无人在线观看的免费高清视频| 在线午夜精品自拍| 日韩精品一区二区不卡| 精品亚洲欧美一区| 国产精品500部| 日韩欧美中文字幕不卡| 精品一区二区三区中文字幕视频| youjizz.com国产| www.亚洲色图.com| 亚洲国产成人自拍| 亚洲欧美久久精品| 国产婷婷色一区二区三区在线| 欧美videos极品另类| 欧美中文在线字幕| 国产综合av一区二区三区| 91av成人在线| 欧美性猛交xxxx乱大交退制版| 亚洲综合免费观看高清完整版在线| 久久久人人爽| 日韩成人精品在线| av 日韩 人妻 黑人 综合 无码| 国产69精品久久app免费版| 一级特黄性色生活片| av蜜臀在线| 蜜臀久久精品久久久久| 成人av国产| 日产精品一区二区| 日韩视频中文字幕在线观看| 奇米影视首页 狠狠色丁香婷婷久久综合| 亚洲男人天堂九九视频| 最近免费中文字幕在线第一页| 免费欧美在线| 99久久99久久精品免费观看| 五月天婷婷亚洲| 欧美另类自拍| 日韩国产精品久久久| aaa在线视频| 亚洲欧美小说国产图片| 精品久久免费看| 国产精品久久久久久无人区| 精品久久久久久久久久久| 欧美午夜激情在线| 天天躁日日躁狠狠躁伊人| 最新日韩三级| 国产男男gay体育生白袜| 婷婷综合在线视频| 激情综合一区二区三区| 922tv免费观看在线| 欧美有码在线| 国产高潮失禁喷水爽到抽搐| 久久综合网导航| 免费看h的网站| 狼狼综合久久久久综合网| av在线女优影院| 色综合久久综合| 国产强被迫伦姧在线观看无码| 国产chinasex对白videos麻豆| 久久精品在线观看视频| 国产av人人夜夜澡人人爽麻豆| 中文字幕2区| 亚洲人成网站在线观看播放| 青青草国产成人a∨下载安卓| 小早川怜子痴女在线精品视频| 大尺度一区二区| 91情侣在线视频| 日本一区高清不卡| 在线免费一级片| 国产精品一区二区亚洲| 大桥未久一区二区三区| 国产成人tv| 欧美在线视频免费观看| 免费看又色又爽又黄网站| 老牛国产精品一区的观看方式| 国产精品久久久久永久免费观看| 亚洲欧美在线观看| 97午夜影院| 国产精品国产馆在线真实露脸| 日韩 欧美 精品| 欧美精品久久99| 99久久亚洲精品日本无码| 免费观看精品视频| 国产精品毛片在线看| 国产亚洲精品一区二区在线观看| 欧美一级日韩免费不卡| 色综合天天综合网国产成人综合天| 做a视频在线观看| 国产在线超碰| 国产又粗又大又爽的视频| 婷婷综合久久中文字幕蜜桃三电影| 九九久久电影| 中文字幕亚洲乱码熟女1区2区| 在线观看欧美| 日日噜噜噜噜夜夜爽亚洲精品| 欧美激情精品久久久久| 久久视频免费在线观看| 四虎4hutv紧急入口| 亚洲国产日韩欧美| 人人妻人人澡人人爽人人欧美一区| 久久精品国产免费| 精品久久久久久久久久岛国gif| 水蜜桃在线免费观看| 日韩免费av片在线观看| 一区在线影院| 国产98色在线| 国产极品嫩模在线视频一区| 久久99久久久精品欧美| 有码av在线| 日本免费网站在线观看| 国产一线在线观看| 国产酒店精品激情| 成人毛片免费看| 天堂电影一区| 日韩av在线一区二区三区| 久久99精品久久久久久野外| www.-级毛片线天内射视视| 中文在线免费二区三区| 九九热精品视频国产| 懂色av蜜臀av粉嫩av喷吹| 国产成人精品一区二三区在线观看| 欧美中在线观看| 欧美野外猛男的大粗鳮| 任你弄在线视频免费观看| 91成人在线观看喷潮| 国产又爽又黄又嫩又猛又粗| 国产最新精品精品你懂的| 成人一区二区三区视频在线观看| 少妇av在线播放| 亚洲激情自拍偷拍| 在线视频国产区| 精品视频在线一区二区| 国产成人精品三级麻豆| 天堂在线视频网站| 久在线观看福利视频| 中文字幕免费在线不卡| 欧美激情一区二区三区全黄| 日本免费网站| 成人激情av在线| 国产成年妇视频| 国产伦精品一区二区三区在线观看| 久久久久久久久久久国产| 久热免费在线视频| 欧美高清视频在线高清观看mv色露露十八| 一本一道久久综合狠狠老| 人妻换人妻仑乱| 俺去啦最新官网| 亚洲欧美精品中文第三| 日韩欧美色电影| 国产欧美中文字幕| 亚洲电影一区二区| 三级网站在线| 国产免费a级片| 日韩美女主播视频| 日韩精品专区在线影院观看| 久久久精品高清| 欧洲亚洲国产日韩| 99se视频在线观看| av在线二区| 中文字幕av一区二区三区谷原希美| 久久综合狠狠综合久久综青草| 国产视频亚洲| 最新中文字幕在线| 在线综合视频网站| 久久综合图区亚洲综合图区| 性欧美精品高清| 欧美特级黄色录像| 欧美日韩国产精品一区二区| 成人做爽爽免费视频| www.97av.com| 日本亚洲欧洲精品| 欧美一区二区三区爽爽爽| 中文字幕一区二区三区人妻在线视频| aaa级黄色片| 91av一区| 亚洲欧美日韩高清| 亚洲熟妇无码久久精品| 欧美天堂影院| 黑人精品欧美一区二区蜜桃| 精品视频在线播放免| 狠狠综合久久av一区二区老牛| 欧美激情777| 国产偷倩在线播放| 欧美韩国日本在线观看| 成人激情在线播放| 亚洲色图欧洲色图| 日本中文字幕不卡| 九九久久久久久| 91免费看片网站| 日本不卡二区| 亚洲欧美制服另类日韩| 国产欧美一区二区三区精品酒店| 亚洲色图20p| www.久久com| 18禁裸乳无遮挡啪啪无码免费| 日韩成人短视频| 日韩美女一区二区三区四区| 在线视频免费观看一区| 嫩草影院官网| 黄页网址大全在线播放| 日韩精品一区二区亚洲av| 佐山爱痴汉视频一区二区三区| 国产精品国产三级国产普通话对白| 成人小视频在线播放| 日本精品在线播放| 亚洲午夜色婷婷在线| 三级亚洲高清视频| 国产99精品视频| 456成人影院在线观看| 密臀av一区二区三区| 国产精品久久久久久久久久久新郎| 黄色免费看视频| 亚洲天堂一区在线观看| 亚洲精选在线观看| 欧美韩国理论所午夜片917电影| 日本中文字幕不卡| 国产曰肥老太婆无遮挡| 2020国产在线| 久久国产精品国语对白| 色婷婷成人网| 国产精品视频白浆合集| 国产又粗又爽又黄的视频| 91福利在线视频| 中国一级片黄色一级片黄| 六月丁香婷婷在线| 少妇人妻无码专区视频| 欧美日韩国产一区二区在线观看| 147欧美人体大胆444| 爽爽爽爽爽爽爽成人免费观看| 久久资源中文字幕| 亚洲另类在线制服丝袜| av在线这里只有精品| 在线视频欧美日韩| 国产精品高清免费在线观看| 国产伦一区二区三区| 亚洲国产视频一区二区| 成人午夜在线播放| 青青草91久久久久久久久| 中老年在线免费视频| aaaaa级少妇高潮大片免费看| 无码人妻精品一区二区三应用大全| 免费动漫网站在线观看| 久久婷婷综合色| 国产91在线播放精品91| 国产综合无码一区二区色蜜蜜| 免费国产一区| 日韩精品免费一线在线观看| 日韩视频免费观看高清| 色综合天天性综合| 国产亚洲成av人在线观看导航| 福利网在线观看| 青青操在线视频观看| 午夜国产欧美理论在线播放| 久久久精品2019中文字幕之3| 欧美+日本+国产+在线a∨观看| 生活片a∨在线观看| 91精品精品| 国产在线精品国自产拍免费| 成人性生交大片免费看中文网站| 日本黄色小说视频| 亚洲h视频在线观看| 国产农村一级特黄α**毛片| 国产盗摄一区二区三区在线| 日本在线视频www色| 成人直播在线| 欧美日韩午夜精品| 日韩欧美一级片| 91caoporm在线视频| 欧美一区日韩一区| 日韩av在线中文字幕| 欧美性生活大片视频| 99re这里有精品| 亚洲尤物影院| 日韩伦理在线电影| 污视频在线免费观看| 中文字幕无码毛片免费看| 在线看的av网站| 亚洲国产另类精品专区| 国产99在线 | 亚洲| 日本不卡一区| 国产黄色麻豆视频| 国产乱码精品1区2区3区| 在线观看av每日更新免费| 综合欧美亚洲| 波多野结衣高清在线| 青草网在线观看| 久久精品导航| 国产艳妇疯狂做爰视频| 一区二区欧美精品| 欧美在线色视频| 亚洲女人在线观看| 免费xxxxx网站中文字幕| 亚洲国产日韩在线人成电影| 美女免费视频黄| 竹菊久久久久久久| 国产成人精品一区二区在线| 国产99久久久国产精品潘金| 久久久久久香蕉网| 国产伊人精品在线| 激情久久av一区av二区av三区| 色综合天天性综合| 亚洲综合一区二区三区| 日本精品免费在线观看| 精品国模一区二区三区欧美| 在线播放成人av| 毛片在线免费播放| 噜噜噜躁狠狠躁狠狠精品视频| 成人h动漫精品一区二|