监控okhttp的HTTP请求

任何App上线应该杜绝http请求的存在。客户端可以通过AOP非侵入式监控所有的请求链接,从而实现非HTTPS请求链接的监控、上报、BUG修复。

@Aspect
public class OkHttpClientAop {

    @Pointcut("execution(okhttp3.OkHttpClient.Builder.new(..))")
    public void builder() {
    }

    @After("builder()")
    public void newBuilderAfter(JoinPoint joinPoint) {
        OkHttpClient.Builder builder = (OkHttpClient.Builder) joinPoint.getTarget();
        builder.addInterceptor(new HttpsMonitor());
    }

    static class HttpsMonitor implements Interceptor {

        @Override
        public Response intercept(Chain chain) throws IOException {
            Request request = chain.request();

            String rawUrl = request.url().uri().toString();
            StringBuilder sb = new StringBuilder("\u21E0 ");
            sb.append("isHttps:").append(request.url().isHttps());
            sb.append(";rawUrl:").append(rawUrl);

            if (!request.url().isHttps()) {
                Log.e("demon", sb.toString());
            } else {
                Log.e("demon", sb.toString());
            }

            return chain.proceed(request);
        }
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,333评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,953评论 2 59
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,009评论 3 119
  • 昨天中午十二点,在深圳东站,我发了个朋友圈:城市套路深,我要回农村。然后踏上了回家的列车。 无奈车一直晚点,本来下...
    新生的新生活阅读 197评论 0 0
  • 1. 这几天最火热的话题莫过于罗尔的赞赏事件,刷爆了各大社交平台。很多人看到《罗一笑,你给我站住》这篇文章都会动恻...
    阿狸Olivia阅读 376评论 0 0