Retrofit添加 Interceptor

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;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我的金钱花在哪些方面是让我感觉最好的? 1、花在提升自己值得感和配得感的方面,比如买漂亮衣服和化妆品 2、花在健康...
    庆清阅读 152评论 0赞 0
  • iOS的模糊效果实现方法有好几种,基本分为两种方式,一种是将图片进行模糊,一种是将模糊的控件放在UI界面上,使控件...
    owen_10阅读 26,659评论 18赞 98
  • 傍晚,打开台灯,灯罩亚麻的纹理清晰可见。突发奇想,拿来秋天采的芦苇,用手机拍了一组照片。 灯影里的芦苇,颇有禅意~
    绮梦识君阅读 400评论 4赞 7

友情链接更多精彩内容