OkGo是基于Okhttp3的封装,所以只需要增加自定义拦截器就可以实现自定义log。(OkGo有一个默认的log拦截器HttpLoggingInterceptor,如果没有特别需求则无需自定义)
第一步自定义拦截器(参考OkGo中的拦截器实现,自己决定具体的打印格式及控制方式)
public class MyHttpLogInterceptor implements Interceptor {
private static final Charset UTF8 = Charset.forName("UTF-8");
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if(YDLog.showHttpRequest()) {
StringBuilder builder = new StringBuilder("Request[");
builder.append(request.url())
.append("]\nheader=[\n")
.append(request.headers())
.append("\n]body=[\n")
.append(isPlaintext(request.body().contentType()) ? bodyToString(request) : "body: maybe [file part] , too large too print , ignored!")