Retrofit——API配置

来源:互联网 发布:php对比java 编辑:程序博客网 时间:2024/06/05 07:03

今天讲Retrofit的配置,讲Converters,


Retrofit类是一个通过你的API接口传入一个回调对象来得到网络请求返回结果的。默认情况,Retrofit将提供默认的配置,但是,它也可以自定义配置。


转换器

默认,Retrofit仅能反序列化HTTP的body到OkHttp的ResponseBody类型中,并且只能接受@Body的RequestBody类型。

Converters转换器能增加支持其它类型。六种同族模块适配器,提供方便的序列化库。

  • Gson: com.squareup.retrofit2:converter-gson
  • Jackson: com.squareup.retrofit2:converter-jackson
  • Moshi: com.squareup.retrofit2:converter-moshi
  • Protobuf: com.squareup.retrofit2:converter-protobuf
  • Wire: com.squareup.retrofit2:converter-wire
  • Simple XML: com.squareup.retrofit2:converter-simplexml
  • Scalars (primitives, boxed, and String): com.squareup.retrofit2:converter-scalars

下面是一个使用GsonConverterFactory类,通过使用Gson来反序列号,来生成一个GitHubService接口实现的例子。

Retrofit retrofit = new Retrofit.Builder()    .baseUrl("https://api.github.com")    .addConverterFactory(GsonConverterFactory.create())    .build();GitHubService service = retrofit.create(GitHubService.class);


自定义转换器

如果你需要和一个使用内容格式化,并且Retrofit不支持这种格式的API通讯,比如YAML、txt、或其它自定义,或者你希望使用一个不同的库来实现一个存在的格式,你可以很容易地创建你自己的converter转换器。创建一个继承Converter.Factory类,并在创建你的适配器的时候传递这个类的一个实例,就可以了。

原创粉丝点击