大家都知道Retrofit2.0 实现的网络请求 其实就是对于okhttp的 进一步的封装 。
这里是分享给大家的是Retrofit2.0和Rxjava结合起来的 实现的网络请求。
1.可以固定配置host 也可以自己填写url headers
2.支持上传下载。
3.支持缓存。无网络的时候。重连机制。
在简单点就是 加入Rxjava对Retrofit2.0简单封装。
1.先进行Interface的构建service
public interface BaseApiService { public static final String BASE_URL = "http://www.baidu.com/"; @POST("{url}") Observable<ResponseBody> exectuePost( @Path("url") String url, @QueryMap Map<String,String> maps ); @GET("{url}") Observable<BaseResponse<Object>> exectueGet( @Path("url") String url, @QueryMap Map<String,String> maps ); @POST("{url}") Observable<ResponseBody> json( @Path("url") String url, @Body RequestBody jsonJar );
2.构建拦截器。打开一个口 添加headers
public class BaseIntercepter implements Interceptor { private Map<String,String> header; //构造函数 public BaseIntercepter(Map<String,String> headers){ this.header = headers; } @Override public Response intercept(Interceptor.Chain chain) throws IOException { Request.Builder builder = chain.request().newBuilder(); if(header != null && header.size() > 0){ Set<String> keys = header.keySet(); for(String headerKey : keys){ builder.addHeader(headerKey,header.get(headerKey)).build(); } } return chain.proceed(builder.build()); } }3.添加缓存机制
4.异常的统一处理。
5.构建单利模式的唯一创建