Android 封装Okhttp+Retrofit+RxJava,外加拦截器实例
1.创建一个接口,用来定义接口使用的
publicinterfaceApi{ @POST("product/getProductDetail") ObservablegetGoods(@QueryMapMap map); @POST("product/addCart") Observable getAdd(@QueryMapMap map); @POST("product/getCarts") Observable getShopCar(@QueryMapMap map); }
注意导包时要是用的是io包,路径是使用注解的形式,通过Java的反射的机制
2.创建一个拦截器
/** *自定义拦截器.使用的是okhttp来定义的拦截器 */ publicclassMyInterceptorimplementsInterceptor{ @Override publicResponseintercept(Chainchain)throwsIOException{ Requestrequest=chain.request(); HttpUrlhttpUrl=request .url() .newBuilder() .addQueryParameter("source","android") .build(); RequestrequestNew=request .newBuilder() .url(httpUrl) .build(); returnchain.proceed(requestNew); } }
3.创建一个封装类
publicclassRetrofitUtil{ publicstaticvolatileRetrofitinstance; publicstaticRetrofitgetInstance(StringbaseUrl){ if(instance==null){ synchronized(RetrofitUtil.class){ //拦截器 OkHttpClientclient=newOkHttpClient.Builder() .addInterceptor(newMyInterceptor()) .build(); //创建retrofit对象 instance=newRetrofit.Builder() .baseUrl(baseUrl) .client(client) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); } } returninstance; } }
以上这篇Android封装Okhttp+Retrofit+RxJava,外加拦截器实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。