Framework of Android: retrofit (2.0)

来源:互联网 发布:linux grep命令与管道 编辑:程序博客网 时间:2024/06/11 16:47

一.官网给的解释是:Retrofit turns your HTTP API into a Java interface. 大白话就是说retroift是用来调用网络api的接口。利用这个框架,我们就不用去写什么Url,Httpclick之类的Android自带的接口了。 那接下来我们来看看retrofit的使用吧(这里的版本是2.0,如果你是使用之前的版本,可能会有些不同)

大致使用的流程如下:

1.先要定义一个请求接口:

public interface GitHubService{

@GET("/users/{user}/repos")

Call<List<Repo>> listRepo(@Path("user" String user));

}

2.然后是定义retrofit:

Retrofit retrofit=new Retrofit.Builder()

.baseUrl("https://api.github.com"")

.build();

GitHubService service=retrofit.create(GitHubService.class);

3.请求网络api

Call<LIst<Repo>> repo=service.listRepos("cat");

二.Retroift有很多地方使用标签来描述Http请求:

1.变量参数,URL

2.请求body

3.分布式请求body和文件上传

Api介绍

请求是通过标记的接口方法和它的参数来表明,Retroift提供了GET,POST,PUT,DELETE and HEEAD,有用在使用是,使用GET和POST的请求最为普遍,因此这里只介绍这两种的用法,其它的用法就参考官方的文档吧

1.GET: you can also specify query parameters in the URL

@GET("/users/list?sort=desc")

当然了也可以动态的来设置请求参数,用{}来把参数括住

@GET("/group/{id}/users")

List<User> groupList(@Path("id") int groupId)

@GET("/group/{id}/users")

List<User> groupList(@Path("id") int groupId,@Query("sort")String sort)

2.POST方法与GET类似,只是把@GET换为@POST了而已


三.By default, Retrofit can only deserialize HTTP bodies into OkHttp'sResponseBody type and it can only accept its RequestBody type for@Body.

提供了丰富的返回类型:

  • 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

更详细的内容还是看官网的吧http://square.github.io/retrofit/。









0 0
原创粉丝点击