您的位置:首页 > 理论基础 > 计算机网络

打印okhttp请求log信息

2017-10-21 15:13 260 查看
package com.example.kson.httpsdemo;

import android.util.Log;

import java.io.IOException;

import okhttp3.FormBody;

import okhttp3.Interceptor;

import okhttp3.Request;

/**

 * Author:kson

 * E-mail:19655910@qq.com

 * Time:2017/10/18

 * Description:

 */

public class LogInterceptor implements Interceptor {

    public static String TAG = "LogInterceptor";

    @Override

    public okhttp3.Response intercept(Chain chain) throws IOException {

        Request request = chain.request();

        long startTime = System.currentTimeMillis();

        okhttp3.Response response = chain.proceed(chain.request());

        long endTime = System.currentTimeMillis();

        long duration=endTime-startTime;

        okhttp3.MediaType mediaType = response.body().contentType();

        String content = response.body().string();

        Log.d(TAG,"\n");

        Log.d(TAG,"----------Start----------------");

        Log.d(TAG, "| "+request.toString());

        String method=request.method();

        if("POST".equals(method)){

            StringBuilder sb = new StringBuilder();

            if (request.body() instanceof FormBody) {

                FormBody body = (FormBody) request.body();

                for (int i = 0; i < body.size(); i++) {

                    sb.append(body.encodedName(i) + "=" + body.encodedValue(i) + ",");

                }

                sb.delete(sb.length() - 1, sb.length());

                Log.d(TAG, "| RequestParams:{"+sb.toString()+"}");

            }

        }

        Log.d(TAG, "| Response:" + content);

        Log.d(TAG,"----------End:"+duration+"毫秒----------");

        return response.newBuilder()

                .body(okhttp3.ResponseBody.create(mediaType, content))

                .build();

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: