Retrofit2.0初步使用指南

Retrofit --A type-safe HTTP client for Android and Java

  • WHY USE RETROFIT?
  • 為什么寫這個:
  • Retrofit不僅效率高,android下一步可能需要使用mvp或mvm開發(fā),
    然后,Retrofit配合Rxjava或RxAndroid可能跟方便的進(jìn)行mvp或mvm開發(fā)。

Download

  • Gradle:
  • compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'

創(chuàng)建Engine接口實(shí)現(xiàn)HTTP API轉(zhuǎn)換

  • 以android C端的加油卡為例:
public interface Engine {
    // 加油卡列表
    @POST("user/fuelcard/list")
    Call<RefuleListResponse> loadFuelcardDatas();
    // 刪除加油卡
    // 官方文檔沒有說明,需要通過@FormUrlEncoded和@Field注解發(fā)送請求參數(shù),也可以在@body里傳cardId="xx"
    @FormUrlEncoded
    @POST("user/fuelcard/delete")
    Call<BaseResponse> delFuelcard(@Field("cardId") String cardId);
}
  • 可以使用Observable配合RxJava進(jìn)行事件傳遞
@GET("/user/{id}/photo")
Observable<Photo> getUserPhoto(@Path("id") int id);
  • 需要添加Retrofit適配RxJava的依賴
  • compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'
  • 設(shè)置header
@Headers("Cache-Control: max-age=640000")
@Headers({
    "Accept: application/vnd.github.v3.full+json",
    "User-Agent: Retrofit-Sample-App"
})

使用Retrofit生成接口Engine的實(shí)現(xiàn)

  • 以android C端的加油卡為例:
// 如果需要按照不同模塊創(chuàng)建不同的engine,需要考慮在什么地方初始化engine;
Engine mEngine = new Retrofit.Builder()
                .baseUrl(HttpMethod.HTTP_URL + "/")
                .addConverterFactory(GsonConverterFactory.create())
                .build().create(Engine.class);
  • addConverterFactory可以自定義轉(zhuǎn)換器

Converters can be added to support other types.
Six sibling modules adapt popular serialization libraries for your convenience.

  • Gson: com.squareup.retrofit:converter-gson
  • Jackson: com.squareup.retrofit:converter-jackson

  • Moshi: com.squareup.retrofit:converter-moshi

  • Protobuf: com.squareup.retrofit:converter-protobuf

  • Wire: com.squareup.retrofit:converter-wire

  • Simple XML: com.squareup.retrofit:converter-simplexml

  • 這里用了Gson,需要添加converter-gson依賴

    • compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'

此為blog備份,原地址:http://blog.yzapp.cn/Retrofit.html

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

相關(guān)閱讀更多精彩內(nèi)容

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