OkHttp封装 和日志拦截器
public class OKHttpUtil {
private static OKHttpUtil okHttpUtil;
private final OkHttpClient okHttpClient;
private OKHttpUtil() {
okHttpClient = new OkHttpClient.Builder()
.addInterceptor(new LogInterceptor())
.build();
}
public static OKHttpUtil getInstance() {
if (null == okHttpUtil) {
synchronized (OKHttpUtil.class) {
if (null == okHttpUtil) {
okHttpUtil = new OKHttpUtil();
}
}
}
return okHttpUtil;
}
public void get(String urlString, Callback callback) {
Request request = new Request.Builder()
.url(urlString)
.build();
okHttpClient.newCall(request).enqueue(callback);
}
}
拦截器的类
public class LogInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Log.e("LogInterceptor", "request:" + request);
Log.e("LogInterceptor", "System.nanoTime():" + System.nanoTime());
Response response = chain.proceed(request);
Log.e("LogInterceptor", "request:" + request);
Log.e("LogInterceptor", "System.nanoTime():" + System.nanoTime());
return response;
}
}