前言
Retrofit2.0的基础就是okhttp,现在多与RxJava一起使用,恩,下面先讲一下它的优缺点:
优点:
- 可以配置不同HTTP client来实现网络请求,如okhttp、httpclient等。
- 支持同步、异步和RxJava
- 超级解耦
- 可以配置不同的反序列化工具来解析数据,如json、xml等
- 使用非常方便灵活
- 框架使用了很多设计模式(感兴趣的可以看看源码学习学习)
缺点:
- 不能接触序列化实体和响应数据
- 执行的机制太严格
- 使用转换器比较低效
- 只能支持简单自定义参数类型
正文
首先需要导入工程
compile 'com.squareup.retrofit2:retrofit:2.2.0'
使用方法
官方文档是这样介绍的:
转自:http://blog.csdn.net/leilba/article/details/50685205
1. 介绍
Retrofit可以将你的HTTP API转化为JAVA的接口的形式。例如:
public interface GitHubService {
@GET("users/{user}/repos")
Call<List<Repo>> listRepos(@Path("user") String user);
}
而Retrofit类能够生成对应接口的实现。例如:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.build();
GitHubService service = retrofit.create(GitHubService.class);
每一个由接口返回的Call对象都可以与远程web服务端进行同步或者异步的HTTP请求通信。例如:
Call<List<Repo>> repos = service.listRepos("octocat");
Retrofit使用注解来描述HTTP请求:
- URL参数的替换和query参数的支持
- 对象转化为请求体(如:JSON,protocol buffers等)
- 多重请求体和文件上传
2.API说明
Retrofit需要注解接口的请求方法和方法的参数来表明该请求需要怎么样的处理。
2.1请求方法
每一个方法必须要有一个HTTP注解来标明请求的方式和相对URL。有五种内置的注解方式:GET、POST、PUT、DELETE以及HEAD。资源的相对URL需要在注解里面明确给出:
@GET("users/list")
当然你