okHttp的日志拦截器

日志拦截器的分类:
a.网络拦截器
b.应用拦截器
在这里插入图片描述
创建一个类

/**
 * 日志拦截器类,请求来了,先在这里进行处理,可以得到发请求到得到请求消耗多久的时间
 * 作用:可以排查网络请求速度慢的根本原因
 *  1.有可能是我们在请求网络时,客户端写了一堆业务逻辑
 *  2.有可能是服务器端,写的有问题
 *  3.有可能就是网速不给力
 */
class LoggingInterceptor implements Interceptor {
  @Override
  public Response intercept(Chain chain) throws IOException {
    //拿到Request对象
    Request request = chain.request();

    long t1 = System.nanoTime();
    System.out.println(" request  = " + String.format("Sending request %s on %s%n%s",
            request.url(), chain.connection(), request.headers()));

    //拿到Response对象
    Response response = chain.proceed(request);

    long t2 = System.nanoTime();
    //得出请求网络,到得到结果,中间消耗了多长时间
    System.out.println("response  " + String.format("Received response for %s in %.1fms%n%s",
            response.request().url(), (t2 - t1) / 1e6d, response.headers()));
    return response;
  }
}

调用以及使用

//声明并实例化日志拦截器
        LoggingInterceptor interceptor = new LoggingInterceptor();
        mClient = new OkHttpClient.Builder()
                //添加日志拦截器
                .addInterceptor(interceptor)
                .writeTimeout(10, TimeUnit.SECONDS)
                .readTimeout(10, TimeUnit.SECONDS)
                .connectTimeout(10, TimeUnit.SECONDS)
                .build();

猜你喜欢

转载自blog.csdn.net/jiahui6666/article/details/84316586