复杂拦截器

public class LoggingInterceptor implements Interceptor {
   		 private static final String TAG = "LoggingInterceptor";
        @Override
        public Response intercept(Chain chain) throws IOException {
        //拦截链对象
        Request request = chain.request();
        //String.format 格式化字符串
        //String.format("发送请求地址:%s%n请求头:%s",request.url(),request.headers())
        //String format:格式,
        // Object... args: 可变参数,可以理解成集合
        //%s:占位符,后面的参数是string
        //%n:换行
        //%d:占位符,通过数字类型的值替换
        //发送请求地址:url 换行 请求头:request.headers()
        Log.d(TAG, String.format("发送请求地址:%s%n请求头:%s",request.url(),request.headers()));

        //System.out.println();
        //获取当前时间的毫秒值
        long startTime = System.currentTimeMillis();
        Log.d(TAG, "intercept: "+startTime);
        //递归+循环的方式把所有的拦截器串联起来,并获取响应结果
        Response response = chain.proceed(request);
        long endTime = System.currentTimeMillis();

        //这里不能直接使用response.body().string()的方式输出日志

        //因为response.body().string()之后,response中的流会被关闭,程序会报错,我们需要创建出一

        //个新的response给应用层处理
        ResponseBody responseBody = response.peekBody(1024 * 1024);

        Log.d(TAG, String.format("耗时:%s%n收到来自:%s的结果:%n%s",(endTime-			startTime)+"ms",response.request().url(),responseBody.string()));

	    return response;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值