一、问题背景
笔者 Android 开发,在维护项目过程中免不了与第三方后台打(che)交(pi)道,在此过程偶尔需要对抗后台的经验主义,拿出证据说明是后台的问题,而报文作为 B / C 的交互数据,自然可以作为证据。
报文的抓取目前我知道两种方式:
- Tcpdump:需要向设备添加 tcpdump 工具或者增加一个物理硬件(Hub)来抓取报文,且无法解析 HTTPS 报文;
- Fiddler / Charles:通过在 PC 设置一个代理服务器,由代理服务器(PC)转发终端设备的相关请求 / 响应,以此抓取报文,且可以解析 HTTPS 报文(Charles 笔者没试过,应该差不多)。
二、设备信息
- 红米 Note 5A(Android 7.1.2),Iphone 7(12.0)
- 联想 E450c
三、关键要点
如果想抓取 HTTPS 报文,必须下载 Fiddler 的证书,借由该证书,运行 Fiddler 的 PC 机,对终端设备充当一个服务器的角色,对后台充当一个客户端的角色。
- 关于如何下载、配置PC上的 Fidder,网上的资源很多,大同小异,笔者也是傻瓜式的操作,没有太多心得,请读者自行搜索其他文章,这里主要讲下终端设备怎么配置。
- PC 主机跟终端设备必须位于同一局域网,