====================创建类RetrofitUtils
public class RetrofitUtils { private static Retrofit.Builder retrofit; private RetrofitUtils() { retrofit=new Retrofit.Builder(); } public static Retrofit.Builder getInstence(){ if(retrofit==null){ retrofit=new Retrofit.Builder(); } return retrofit; } }//在M层的使用
public class Model implements Imodel { private Bean bean; @Override public void shuju(Observer<Bean> observer) { //创建被观察者 Observable.create(new Observable.OnSubscribe<Bean>() { @Override public void call(final Subscriber<? super Bean> subscriber) { //Retrofit的请求数据 // Retrofit retrofit=new Retrofit.Builder() //单例模式的使用直接调用方法 Retrofit retrofit= RetrofitUtils.getInstence() //设置网络请求的url .baseUrl("http://result.eolinker.com/") //设置Gson .addConverterFactory(GsonConverterFactory.create()) //设置Rxjava .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); //创建网络请求接口的实例 GetRequest_In Request=retrofit.create(GetRequest_In.class); //对发的请求进行封装 Call<Bean> call=Request.getCall(); //使用异步发送网络请求 call.enqueue(new Callback<Bean>(){ //请求成功时回调 @Override public void onResponse(Call<Bean> call, Response<Bean> response) { bean=response.body(); //调用OnNext方法把值传给观察者 subscriber.onNext(bean); subscriber.onCompleted(); } //请求失败时的回调 @Override public void onFailure(Call<Bean> call, Throwable t) { } }); } }).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread()) .subscribe(observer); } }