官方git地址:https://github.com/square/retrofit.git
简介:
首先定义请求接口,看都需要什么网络操作
public interface GitHubService {
@GET("/users/{user}/repos")
Call<List<Repo>> listRepos(@Path("user") String user);
}
上面的接口表示通过Rest风格的请求List数据集
然后利用Retrofit class 来生成网络请求的实现
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com")
.build();
GitHubService service = retrofit.create(GitHubService.class);
baseUrl指的是网络请求的基础url
通过调用实现的的操作即可实现联网请求数据
Call<List<Repo>> repos = service.listRepos("octocat");
每一个请求方法都必须用注解注释,一共有 GET, POST, PUT, DELETE, and HEAD 5种注解,每种注解对应相应的Rest请求方法
GET 请求
@GET("/users/list")
你也可以把请求参数添加在url中
@GET("/users/list?sort=desc")
对应Rest请求中可以在路径中包含参数,retrofit同样可以添加路径参数,注解中用{}括起来的就是路径参数,与此同时需要在请求方法的参数中用@Path来注明此参数为路径参数,如
@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);
retrofit 很强大,可以直接添加Map类型的请求参数
@GET("/group/{id}/users")
List<User> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);
介绍完GET请求,接下来肯定就是POST请求了
不愧为面向对象和接口编程的框架,POST请求可以直接用model类来传递参数,如果你在注册新用户的时候,需要的信息就可以使用@Body将model 通过POST方法上传给服务器
@POST("/users/new")
Call<User> createUser(@Body User user);
那如何在Android studio中使用呢,如果使用的Gradle构建的项目
compile 'com.squareup.retrofit:retrofit:1.9.0'