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<String> 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<String> 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);
|
}
|
}
|
|
}
|