1.导入依赖包
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'io.reactivex.rxjava2:rxjava:2.1.6'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
compile 'com.github.franmontiel:PersistentCookieJar:v1.0.1'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
maven { url 'https://jitpack.io' }项目里build里面
2.
public class NetRequestUtils { private NetRequestUtils Instance; private Baseretrofit baseretrofit; private static ClearableCookieJar cookieJar; public NetRequestUtils(Baseretrofit baseretrofit) { this.baseretrofit=baseretrofit; } static { cookieJar = new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(MyApp.context)); } public NetRequestUtils() { } public Baseretrofit getbaseretrofit(){ return baseretrofit; } public NetRequestUtils bucuo(){ //打印响应结果 HttpLoggingInterceptor loggingInterceptor=new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { @Override public void log(String message) { Log.i("RetrofitLog","retrofitBack = "+message); } }); loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient.Builder okHttpClient= new OkHttpClient.Builder(); int maxcache=10*1024*1024; Cache cache=new Cache(Environment.getDataDirectory(),maxcache); okHttpClient.cache(cache); okHttpClient.addInterceptor(loggingInterceptor); okHttpClient.cookieJar(cookieJar); Retrofit.Builder retrofit=new Retrofit.Builder().baseUrl("https://newapi.henhaojie.com/user/").client(okHttpClient.build()); retrofit.addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJava2CallAdapterFactory.create()); Baseretrofit baseretrofit = retrofit.build().create(Baseretrofit.class); Instance=new NetRequestUtils(baseretrofit); return Instance; } } 3.专门写接口的 public interface Baseretrofit { @GET("product/homeact") Observable<DataBean> getup(); }
4.开始使用
Observable<DataBean> dataBeanObservable = new NetRequestUtils().bucuo().getbaseretrofit().getup().subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread());
dataBeanObservable.subscribe(new Observer<DataBean>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(DataBean dataBean) { //成功 DataBean.RstBean.HomeactBean homeactBean = dataBean.rst.homeact.get(0); System.out.println("成功了"+homeactBean.update_time); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });