前言:
前段时间花了点时间学了一下RxJava和Retrofit2,后面在实践中被没有用到,今天一看,呃,都基本上忘掉了。
在这里总结记录一下。
这里调用豆瓣的电影接口拉取一些数据
URL:https://api.douban.com/v2/movie/
一、只用Retrofit2发起网络请求
1.给对应的URL定义一个Java接口
public interface MovieService {
@GET("top250")//start,count 是接口的参数
Call<MovieEntity> getTopMovie(@Query("start") int start, @Query("count") int count);
}
2.用Retrofit 实例调用接口
创建实例
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create())
.build();
MovieService movieService = retrofit.create(MovieService.class);
发起请求
Call<MovieEntity> call = movieService.getTopMovie(0, 10);
call.enqueue(new Callback<MovieEntity>() {
@Override
public void onResponse(Call<MovieEntity> call, Response<MovieEntity> response) {
Toast.makeText(getBaseContext(), "success=" + response.body().toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<MovieEntity> call, Throwable t) {
Toast.makeText(getBaseContext(), "error=" + t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
用到的实体类
public class MovieEntity implements Serializable {
private Long mId;
private String mTitle;
private String mSummary;
public Long getmId() {
return mId;
}
public void setmId(Long mId) {
this.mId = mId;
}
public String getmTitle() {
return mTitle;
}
public void setmTitle(String mTitle) {
this.mTitle = mTitle;