okhttp网络拦截器用于打印网络请求的参数,url等log信息 很方便实用 import android.util.Log; import java.io.IOException; import okhttp3.FormBody; import okhttp3.Interceptor; import okhttp3.Request; public class LogInterceptor implements Interceptor { public static String TAG = "LogInterceptor"; @Override public okhttp3.Response intercept(Chain chain) throws IOException { //有些服务器连接不能获取返回的数据需要加一个请求头 // Request request = chain.request().newBuilder().addHeader("User-Agent","OkHttp Example").build(); 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(); } }
okhttp网络拦截器
最新推荐文章于 2022-06-24 23:06:32 发布