Retrofit是一套RESTful架构的Android(Java)客户端实现,基于注解,提供JSON to POJO(Plain Ordinary Java Object,简单Java对象),POJO to JSON,网络请求(POST,GET,PUT,DELETE等)封装,对于网络调用的诸多细节做了封装,是的我们在开发过程中之关注对象的调用,而不关心网络请求的细节,是网络编程变得简单。是代码变得更加优雅易读。
1.包的获取与安装
Maven 配置
<dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>retrofit</artifactId> <version>2.2.0</version> </dependency>
Gradle 配置
compile 'com.squareup.retrofit2:retrofit:2.2.0'
直接应用Jar包
2.初始化
首先需要创建一个接口,然后配置注解
public interface APIClient { @GET("/api/movies") void movies(Callback<List<Movie>> callback); }
3.配置Retrofit 的RestAdapter 使其生成代理类
OkHttpClient client = new OkHttpClient(); mRestAdapter = new RestAdapter.Builder() .setEndpoint(baseUrl) .setClient(new OkClient(client)) .build(); myApiClient = mRestAdapter.create(APIClient.class);
这里client可以指定自己的配置实例,这里我选择的是OkClient, 当然你也可以配置其它的。上面这个配置是最简单的配置,当然你还可以配置一些转换器,来讲请求的Json 字符串转化成对象。
4. 调用
RetrofitdemoApplication.getInstance().myApiClient.movies(new Callback<List<Movie>>() { @Override public void success(List<Movie> moves, Response response) { mMovies=moves; mListView.setAdapter(new MovieAdapter(MovieActivity.this,moves)); Response r=response; } @Override public void failure(RetrofitError error) { String s=error.getMessage(); Toast.makeText(MovieActivity.this, "get data from API failuar", Toast.LENGTH_LONG).show(); } });
这个调用方法中有两个回掉,一个是失败时的回掉方法,另一个是成功时的回掉方法。