public class RetrofitUtils { private static Retrofit wsRetrofit; private static final Retrofit getWSRetrofit() { if (wsRetrofit == null) { HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build(); wsRetrofit = new Retrofit.Builder() .baseUrl(WebServices.BASE_URL) .client(client) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); } return wsRetrofit; } public static final WebServices getWebServices() { return getWSRetrofit().create(WebServices.class); } public static void call(Observable call, final RetrofitCallback callback) { call(call, null, callback); } public static void call(Observable call, final CompositeDisposable disposableContainer, final RetrofitCallback callback) { call .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { if (disposableContainer != null) disposableContainer.add(d); } @Override public void onNext(T t) { callback.onSuccess(t); } @Override public void onError(Throwable e) { callback.onError(e); } @Override public void onComplete() { } }); } }