package com.mjd.day08_test.api;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* Created by admin on 2018-8-10.
*/
public class RetrofitClient {
private static RetrofitClient sRetrofitClient;
private static Netapi sNetapi;
private static Parameter sParameter;
private static Retrofit sRetrofit;
public static RetrofitClient getInstances(){
if (sRetrofitClient == null){
sRetrofitClient = new RetrofitClient();
}
return sRetrofitClient;
}
public Parameter getParameter(){
return sParameter == null ? config(Parameter.class) : sParameter;
}
private <T> T config(Class<T> service){
sRetrofit = new Retrofit.Builder()
.client(configok())
.baseUrl(Netapi.BAST)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
return sRetrofit.create(service);
}
private OkHttpClient configok(){
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(5, TimeUnit.SECONDS)
.build();
return client;
}
}
package com.clancy;
import com.google.gson.JsonObject;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
public class RetrofitManager {
private Retrofit retrofit;
private RequestService service;
private static RetrofitManager mManager;
private RetrofitManager() {
retrofit = new Retrofit.Builder()
.baseUrl(Api.BASE_API)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
service = retrofit.create(RequestService.class);
}
public static RetrofitManager getInstances(){
if(mManager != null){
return mManager;
}else{
return new RetrofitManager();
}
}
public void async(Observable<JsonObject> observable, Subscriber<JsonObject> subscriber){
observable.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
}
public RequestService getApiService(){
return service;
}
}