11月更文挑战|Android基础-应用数据抓包实践

245 阅读2分钟

这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战

前言

Android开发中难免遇到一些棘手问题需要排查数据,大多数数据来源来自接口,为了更好找到问题源头肯定先从接口数据上找原因。一般情况下直接从应用项目中打印日志就能排查,特殊情况就需要借助代理工具捕获请求接口获取更多更详细的数据信息(特殊情况也包含和后端同学掰头:谁来背锅)。

Mac环境下使用Charles

Charles是网络调试代理工具,作为网络封包截取工具在开发移动应用时可以方便调试应用和服务器端网络通讯协议:

  1. 使用Charles调试端口数据
  2. 用于分析第三方应用通讯协议查看
  3. 支持SSL功能,可分析Https协议
  4. 更多其他等功能

Mac配置抓包

  1. 下载安装并打开Charles,点击【设置】->【Proxy Settings..】 image.png

  2. 代理设置,在【Proxies】配置代理端口8888(默认一般都是8888);【macOS】勾选"Enable macOS proxy","Enable macOS proxy on launch"。

ProxiesmacOS
image.pngimage.png
  1. 配置SSL代理设置,点击【Proxy】-> 【SSL Proxying Settings】 image.png

进入到【SSL Proxying Settings】在【SSL Proxying】勾选Enable SSL Proxying选项,然后点击【add】新增Location填写Host:* ,Port:433。 image.png

  1. 安装证书,点击【Help】-> 【SSL Proxying】-> 【Install Charles Root Certificate】

PS:当下请求都是Https因此需要安装相应证书才能验证通过。

image.png 弹出钥匙串访问页面,点击对应Charles Proxy证书文件。 image.png

弹出证书信息后在【信任】一栏选择始终信任。

image.png

5.添加映射配置,【Tools】-> 【Map Remote】,【Add】添加所需要映射的接口地址。

映射配置并非必须的设置,在业务需要时进行设置。

image.pngimage.png

安卓端配置

安卓手机端配置,点击【Help】-> 【SSL Proxying】-> 【Install Charles Root Certificate on Mobile Device...】

image.png

image.png (1) 出现弹窗页面后,根据弹窗提示手机连接和Mac同一WIFI网络下并设置WIFI代理地址:172.xxx.xxxx.23:8888

(2) 通过手机浏览器输入地址:chls.pro/ssl, 下载证书文件。

(3) 进入WIFI设置中,进入【WIFI设置】点击【安装证书】选择charles的证书文件安装。

123
eeee.jpgqqq.jpgwww.jpg

抓包结果

客户端和手机端都配置好抓包设置之后就能在Charles面板的抓包数据中获取到。

image.png

参考