public class RetrofitUtils { public static RetrofitUtils retrofitUtil=null; private final Retrofit retrofit; public RetrofitUtils(){ OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))//添加的是应用拦截器 .build(); OkHttpClient.Builder builder = new OkHttpClient.Builder(); retrofit = new Retrofit.Builder() .baseUrl("http://api.tianapi.com/") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); } public static RetrofitUtils getInstance(){ if(null==retrofitUtil){ //同步锁 synchronized (RetrofitUtils.class){ if(null==retrofitUtil){ retrofitUtil=new RetrofitUtils(); } } } return retrofitUtil; } public ZhujieApi getZhujieApi(){ //创建一下自己写的注解 return retrofit.create(ZhujieApi.class); }
}
//model里面的
public void getUrl(String url, String key, String num) { Observable<Bean> beanObservable = RetrofitUtils.getInstance().getZhujieApi().doGet(key, num); beanObservable.observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(new Observer<Bean>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Bean value) { imPresenter.onsuccess(value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); } }//用注解
public interface ZhujieApi { @GET("nba/?") Observable<Bean> doGet(@Query("key") String key, @Query("num") String num); }