依赖: implementation 'io.reactivex.rxjava2:rxjava:2.0.1'///RxJava 依赖 implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'//RxAndroid 依赖 implementation 'com.squareup.retrofit2:adapter-rxjava2:+'//Retrofit支持RxJava2 依赖implementation 'com.squareup.okhttp3:okhttp:4.9.0'//OkHttp 依赖 implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'//OkHttp日志拦截器依赖 implementation 'com.squareup.retrofit2:retrofit:2.9.0'//Retrofit依赖 implementation 'com.squareup.retrofit2:converter-gson:2.9.0'//Gson转换器 依赖 头参拦截器:
public class HttpInterceptor implements Interceptor { @NonNull @Override public Response intercept(@NonNull Chain chain) throws IOException { int userId = SPUtils.getInstance().getInt("userId", 0); String sessionId = SPUtils.getInstance().getString("sessionId", "0"); Log.i("MyInfor", sessionId); Request.Builder builder = chain.request().newBuilder(); builder.addHeader("userId", userId + ""); builder.addHeader("sessionId", sessionId); Request request = builder.build(); return chain.proceed(request); } }
代码: public class HttpUtil { public static HttpUtil httpUtil; public Api api; public Api getApi() { return api; } //TODO 双重校验锁 public static HttpUtil getHttpUtil() { if (httpUtil == null) { synchronized (HttpUtil.class) { if (httpUtil == null) { httpUtil = new HttpUtil(); } } } return httpUtil; } //TODO 判断有网无网 public static Boolean isConn(Context context) { ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); return info != null && info.isConnected(); } public HttpUtil() { OkHttpClient okHttpClient = new OkHttpClient.Builder() .readTimeout(1000, TimeUnit.SECONDS) .connectTimeout(1000, TimeUnit.SECONDS) .addInterceptor(new HttpInterceptor()) .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) .build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://wq.bwstudent.com:7998") .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .client(okHttpClient) .build(); api = retrofit.create(Api.class); } }