1.第一步将Retrofit和Rxjava关联起来 public Retrofit getRetrofit(String baseUrl){ Retrofit retrofit=new Retrofit.Builder() .client(setOkHttpClick()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .baseUrl(baseUrl) .build(); return retrofit;
2.把Retrofit的返回值替换为Retrofit的Observer对象
public interface BeautyServer { @POST Observable<TodayNewsRes> getBeauty(@Url String url); } 3.调用接口返回数据 RetrofitClient.getInstance().getRetrofit(BASE_URL).create(BeautyServer.class).getBeauty("api/today") .subscribeOn(Schedulers.newThread()) .observeOn(Schedulers.io())//工作线程 .doOnNext(new Action1<TodayNewsRes>() { @Override public void call(TodayNewsRes todayNewsRes) { Logger.d(todayNewsRes); } }) .observeOn(AndroidSchedulers.mainThread())//切换为主线程返回数据 .subscribe(new Subscriber<TodayNewsRes>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(TodayNewsRes todayNewsRes) { toastMsg(todayNewsRes.toString()); //Logger.d(todayNewsRes.toString()); } });