您的位置:首页 > 理论基础 > 计算机网络

Retrofit——A type-safe HTTP client for Android and Java(The first part)

2016-08-21 22:11 706 查看

一,介绍

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);


翻译了一部分,感觉上面的东西好像是外星人写的。。。宝宝会继续更的!希望能忍着翻译完,更希望看过的人不要打我。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐