抓包调试
扩展程序SDK 中的接口均通过网络与小米IoT 平台交互,为了方便开发者在开发扩展程序的过程中,快速定位并排查问题,开发者在开发以及调试的过程中,使用抓包工具Charles,分析问题出现的原因。
抓包步骤
①下载并安装证书
-
通过电脑向手机传输证书:Help->SSL Proxying->Save Charles Root Certificate…,获取证书后,请将证书传输至手机
-
通过手机浏览器向手机传输证书:Help->SSL Proxying->Install Charles Root Certificate
on a Mobile Device or Remote Browser,设置手机WI-FI 代理,如主机(IP)为10.224.206.28,端口为8888,请在设置好网络后发起一次网络请求,并在Charles 上确认Allow,在手机浏览器上输入chls.pro/ssl,下载证书 -
小米手机系统浏览器下载不了,下个第三方的浏览器即可
-
【小米手机需要设置一个屏幕数字密码;市场下一个其它的浏览器(不能用系统自带的浏览器)】
② 安装证书
-
Android:进入手机“设置”-“WLAN”-“高级设置”-“安装证书”,找到下载的证书并安装,证书命名可为Charles,“凭据用途”请选择”VPN和应用”
-
iOS:“设置”-“通用”-“描述文件与设备管理” 找到并安装证书,在“关于本机”-“证书信任设置”中打开证书的开关
-
小米手机设置一个屏幕密码,比如 111111
③在米家APP(DB 包)中打开明文传输开关
-
Android:请下载DB包,并登录开发者账号,在“我的”-“开发者选项”-“开发者模式”-“其他设置”中,打开“是否强制使用明文传输数据”
-
iOS:请下载DB包,并登录开发者账号,在“我的”-“开发者选项”-“开发者模式”-“其他设置”中,打开“是否强制使用明文传输数据”
-
打开“强制使用明文传输数据”后,如果仍无法看到明文数据,请退出米家APP(DB 包) 并重新进入
④查看接口请求与返回的数据
在Charle 中选中某个接口,在右侧选择“Content”-“Form”查看接口请求与返回的数据, https://api.io.mi.com/app(v2)
说明
-
使用Charles抓包前,请确保您的手机和电脑处于同一局域网下(即网关和子网掩码需一致),此外,请确保已正确设置Wi-Fi 代理;
-
抓包时请打开Charles并确认“Allow”,有关Charles的使用方法请参见官方文档:Welcome to Charles,如果看不懂英文教程,请找您企业组内的其他同事翻译,或使用Google 翻译;
-
Charles 一次性记录抓包数据时间过长时,会使APP的网络请求变慢,所以建议经常清理抓包记录和不必要时关闭抓包。
卸载证书
网上太多教程都是教安装证书的,却没多少说过如何卸载不需要的CA证书。所以这里说一下,我用的设备是华为荣耀8,应该区别不大。
手机终端打开设置 –> 安全和隐私 –> 更多安全设置 –> 用户凭据 –> 删除之前安装的凭据;
手机终端打开设置 –> 安全和隐私 –> 更多安全设置 –> 受信任的凭据 –> 用户 –>删除之前安装的凭据。