Charles调试Android 7网络请求

启用Charles SSL

首先设置Charles SSL, 这一步和其他SSL网络请求调试一样:

1. 在Proxy的Proxy Settings配置代理:

Proxy Settings
Proxy Settings

2. 在SSL Proxy Settings中配置SSL:

SSL Proxy Settings

3. 在Help->SSL Proxy中安装自定义证书:

Proxy Settings

Tips: 完成后, 本地的SSL请求应当可以在Charles正常显示。

设置Android模拟器/终端

1. 通过以下命令启动带proxy的模拟器

emulator -netdelay none -netspeed full -avd <emulator> -http-proxy http://<ip-proxy>:8888
, 或者在终端的高级网络设置中设置proxy为http://<ip-proxy>:8888

2. 在Android浏览器中打开 http://www.charlesproxy.com/getssl/ 并安装证书,名称随意:

Android SSL Cert

Tips: 完成后,Android浏览器中SSL请求应当可以在Charles中正常显示。

配置Android项目

由于Android 7开始采用了新的网络安全性配置, 需要更改项目设置:

1. 在 AndroidManifest.xml 中添加

android:networkSecurityConfig="@xml/network_security_config"
tools:targetApi="n"

2. 在 (debug)res/xml 下新建 network_security_config.xml

<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Time to enjoy!

Ref:
CHARLES PROXY IN ANDROID EMULATOR

Android7でcharlesからssl通信が見れなくなった件

comments powered by Disqus