User-Agent
public class UAInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request.Builder builder = chain.request().newBuilder();
builder.addHeader("User-Agent","Android;lovelycn;1.0");
return chain.proceed(builder.build());
}
}
log日志打印
public class LogInterceptor implements Interceptor {
public String TAG = "okHttp";
@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.e(TAG, "\n");
Log.e(TAG, "----------Start----------------");
Log.e(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.e(TAG, "| RequestParams:{" + sb.toString() + "}");
}
}
Log.e(TAG, "| Response:" + content);
Log.e(TAG, "----------End:" + duration + "毫秒----------");
return response.newBuilder()
.body(okhttp3.ResponseBody.create(mediaType, content))
.build();
}
}
public static OkHttpClient genericClient() {
OkHttpClient httpClient = new OkHttpClient.Builder()
.addInterceptor(new UAInterceptor())
.addInterceptor(new LogInterceptor())
.build();
return httpClient;
}