package com.github.hunter0x7c7.sync.model.server.net.interceptors; import com.github.hunter0x7c7.sync.model.server.BaseServiceClient; import okhttp3.HttpUrl; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; import java.util.List; import java.util.Set; public class HeaderInterceptors implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { //打印日志 if (BaseServiceClient.isDebugMode()) { printLog(chain.request().url()); } try { return chain.proceed(chain.request()); } catch (Exception e) { e.printStackTrace(); } return new Response.Builder().build(); // return addHeader(chain); //添加header } /** * 使用拦截器,统一添加header */ private Response addHeader(Chain chain) throws IOException { Request original = chain.request(); Request request = original.newBuilder() .header("token", "0df80200-5b21-44b7-a515-a93eafa6227a636598210104279494") .method(original.method(), original.body()) .build(); return chain.proceed(request); } /** * 打印日志 */ private void printLog(HttpUrl url) { Set stringSet = url.queryParameterNames(); StringBuilder sb = new StringBuilder(); sb.append("{"); for (String key : stringSet) { if (sb.length() > 1) { sb.append(","); } sb.append("\"").append(key).append("\":"); List values = url.queryParameterValues(key); if (values != null) { if (values.size() > 0) { String str = values.get(0); if ((str.startsWith("[") && str.endsWith("]")) || (str.startsWith("{") && str.endsWith("}"))) { sb.append(str); } else { sb.append("\""); sb.append(str); sb.append("\""); } } } if (String.valueOf(sb).endsWith(":")) { sb.append("\"\""); } } sb.append("}"); if (BaseServiceClient.isDebugMode()) { System.out.println("intercept request:" + sb.toString() + " url:" + url); } } }