当下Android封装的网络工具类中使用比较多的就是RxJava+retrofit+Okhttp## 话不多说了,直接上代码吧
public class NetUtil { private static NetUtil instace; private Retrofit retrofit; private NetUtil(){ initNet(); } //双重校验 public static NetUtil getInstance(){ if (instace==null){ synchronized (NetUtil.class){ instace=new NetUtil(); } } return instace; } //初始化网络请求 private void initNet(){ //初始化OKHTTP HttpLoggingInterceptor interceptor=new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient httpClient=new OkHttpClient.Builder() .writeTimeout(500, TimeUnit.SECONDS) .readTimeout(500,TimeUnit.SECONDS) .connectTimeout(500,TimeUnit.SECONDS) .addInterceptor(interceptor) //入头参 .addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { SharedPreferences sharedPreferences = App.context.getSharedPreferences(Constant.SP_NAME, Context.MODE_PRIVATE); String sessionId = sharedPreferences.getString(Constant.SESSION, ""); int userId = sharedPreferences.getInt(Constant.USERID, 0); Request request = chain.request(); Request.Builder builder = request.newBuilder(); if (!TextUtils.isEmpty(sessionId)&& userId!=0){ builder.addHeader("sessionId",sessionId); builder.addHeader("userId", Integer.toString(userId)); Request build=builder.build(); return chain.proceed(build); } return chain.proceed(builder.build()); } }) .build(); //初始化Retrofit retrofit=new Retrofit.Builder() .baseUrl(Constant.BASE_URL) .client(httpClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); } //初始化ApiService public ApiService apiService(){ ApiService apiService=retrofit.create(ApiService.class); return apiService; } //网络判断 public boolean hasNetWork(){ ConnectivityManager connectivityManager = (ConnectivityManager) App.context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo(); if (networkInfo!=null && networkInfo.isConnected()){ return true; }else { return false; } } }以上就是完整的RxJava+retrofit+Okhttp的网络请求,以上代码不是标准,纯属个人习惯,不喜勿喷,如果发现问题,请大佬多多指点
