Android 7.0以上 无法抓取Https包解决办法

Android 官网:网络安全配置

近期升级了targetSdkVersion到28,发现无法抓取到https请求包,查看了一下,Google修改安全策略了

#####默认配置

  • Android6.0 (API 级别 23)及更低版本应用的默认配置如下所示:
    
        
            
            
        
    
    
  • **Android 7.0(API 级别 24)**到 **Android 8.1(API 级别 27)**的应用的默认配置如下所示:
    
        
            
        
    
  • **Android 9(API 级别 28)**及更高版本应用的默认配置如下所示:

        
            
        
    

#####分析&解决
6.0—> 7.0 可以发现,默认配置少了 也就是不信任用户添加的CA证书(ps: 所以抓包工具请求Https包的时候会失败)。9.0 更严格,默认不信任用户添加的CA证书,还禁止了http明文请求

最简单的方式就是项目修改为使用 Android6.0的默认配置

1.修改targetSdkVersion = 23
2.新建 network_security_config.xml 文件,目录结构如下图:
Android 7.0以上 无法抓取Https包解决办法_第1张图片
3.network_security_config.xml 文件内容如下:



    
        
            
            
        
    

4.将刚新建的xml文件添加到清单文件中,如下图:

Android 7.0以上 无法抓取Https包解决办法_第2张图片

附:仅在debug模式下允许抓包配置如下:



    
        
            
            
        
    

你可能感兴趣的:(Android 7.0以上 无法抓取Https包解决办法)