Retrofit2.0初步使用指南

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

  • WHY USE RETROFIT?
  • 为什么写这个:
  • Retrofit不仅效率高,android下一步可能需要使用mvp或mvm开发,
    然后,Retrofit配合Rxjava或RxAndroid可能跟方便的进行mvp或mvm开发。

Download

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

创建Engine接口实现HTTP API转换

  • 以android C端的加油卡为例:
public interface Engine {
    // 加油卡列表
    @POST("user/fuelcard/list")
    Call loadFuelcardDatas();
    // 删除加油卡
    // 官方文档没有说明,需要通过@FormUrlEncoded和@Field注解发送请求参数,也可以在@body里传cardId="xx"
    @FormUrlEncoded
    @POST("user/fuelcard/delete")
    Call delFuelcard(@Field("cardId") String cardId);
}
  • 可以使用Observable配合RxJava进行事件传递
@GET("/user/{id}/photo")
Observable getUserPhoto(@Path("id") int id);
  • 需要添加Retrofit适配RxJava的依赖
  • compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'
  • 设置header
@Headers("Cache-Control: max-age=640000")
@Headers({
    "Accept: application/vnd.github.v3.full+json",
    "User-Agent: Retrofit-Sample-App"
})
  • 更多请见官网

使用Retrofit生成接口Engine的实现

  • 以android C端的加油卡为例:
// 如果需要按照不同模块创建不同的engine,需要考虑在什么地方初始化engine;
Engine mEngine = new Retrofit.Builder()
                .baseUrl(HttpMethod.HTTP_URL + "/")
                .addConverterFactory(GsonConverterFactory.create())
                .build().create(Engine.class);
  • addConverterFactory可以自定义转换器
  • 官网说明:(来源: http://square.github.io/retrofit/)

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

你可能感兴趣的:(Retrofit2.0初步使用指南)