创建一个接口,根据请求方式改变注解
Retrofit用单例模式
public class CircleRetro {
private static CircleRetro instance;
private final Retrofit retrofit;
public static CircleRetro getInstance(){
if (instance==null){
instance=new CircleRetro();
}
return instance;
}
private CircleRetro(){
OkHttpClient okHttpClient=new OkHttpClient.Builder()
.writeTimeout(5000,TimeUnit.MILLISECONDS)
.readTimeout(5000,TimeUnit.MILLISECONDS)
.connectTimeout(5000,TimeUnit.MILLISECONDS)
**如需日志拦截器和请求头拦截器,在此添加**
.build();
retrofit = new Retrofit.Builder()
.baseUrl("http://172.17.8.100/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
}
public <T> T createApi(Class<T> cls){
T t=(T) retrofit.create(cls);
return t;
}
}
在Model层中的使用
public class CircleModel {
public void showCricle(int userId, String sessionId,int page,int count, final CircleCallBack back){
把创建的接口放进去
Circleret api = CircleRetro.getInstance().createApi(Circleret.class);
api.getCircle(userId, sessionId,page,count)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<CircleBean>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
back.Failer(e.getMessage());
}
@Override
public void onNext(CircleBean circleBean) {
List<CircleBean.ResultBean> result = circleBean.getResult();
back.Onsucess(result);
}
});
}
}