package com.example.blu.toys.utils;

import android.util.Log;

import java.io.IOException;

import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.Request;

public class LoggingInterceptor 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();
	}
}