Retrofit——A type-safe HTTP client for Android and Java(The first part)
一,介绍 Retrofit将你的http接口API转换成项目中的一个java的接口。 public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user); } Retrofit会自动为上面的Service生成一个实现类。 Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build(); GitHubService service = retrofit.create(GitHubService.class); 每次调用的时候,创建的接口的实现类会产生一个异步或者同步的http请求到远程的web服务器上面。 Call<List<Repo>> repos = service.listRepos("octocat"); 使用注解的方式来描述http请求: 1,支持url参数和查询参数 2,对象转换成请求体,即对json对象的支持 3,多种请求体,文件等也支持(翻译的好土气呀。。。) 二,API声明 使用接口上的方法注解和请求参数来说明一个请求时如何被处理的。 三,请求方法 每个方法都必须有一个http注解来提供请求请求和相关联的URL。这里有五种支持的注解形式:GET,POST,PUT,DLETE,HEAD。相关的请求URL放在请求注解中。 @GET("users/list") 同时,你也可以直接在URL中提供请求参数: @GET("users/list?sort=desc") 四,URL操作 请求参数能被动态更新---by方法中的占位符。一个请求块是用’{}‘——这个符号包围的。一个对应的参数必须被@Path注解,并且使用相同的参数名字。 @GET("group/{id}/users") Call<List<User>> groupList(@Path("id") int groupId); 请求参数也能被添加: @GET("group/{id}/users") Call<List<User>> groupList(@Path("id") int groupId, @Query("sort") String sort); 例如,下面使用一个map来做栗子: @GET("group/{id}/users") Call<List<User>> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options); 翻译了一部分,感觉上面的东西好像是外星人写的。。。宝宝会继续更的!希望能忍着翻译完,更希望看过的人不要打我。