关于Android开发来说,除了AS自带的Profiler外,Charles是比较合适咱们的抓包东西了,它能够让咱们明晰的查看客户端运用的http协议、TLS协议、恳求头号信息,还能显示咱们的设备型号,并修正入参进行调试、模拟慢速网络环境、断电调试以及经过装置CA证书调试Https等实用技术,下面我做了个简单介绍,方便自己记载,没用过的同学也能够看下快速入门。

Charles 官网

下载相应体系的Charles 装置包,装置即可。


Charles的实质是一个HTTP和SOCKS的署理服务器。 署理恳求和呼应,使Charles能够在恳求从客户端传递到服务器时检查更改,服务器传递到客户端的呼应也是如此。

Charles菜单意义

Charles 小白入门

顶部菜单

比较常用的菜单是Proxy和Tools。

Proxy菜单
  • Start/Stop Recording:开端/中止记载会话。

  • Start/Stop Throttling:开端/中止节省。

  • Enable/Disable Breakpoints:敞开/封闭断点模式。

  • Recording Settings:记载会话设置。

  • Throttle Settings:节省设置。

  • Breakpoint Settings:断点设置。

  • Reverse Proxies Settings:反向署理设置。

  • Port Forwarding Settings:端口转发。

  • Windows Proxy:记载计算机上的一切恳求。

  • Proxy Settings:署理设置。

  • SSL Proxying Settings:SSL 署理设置。

  • Access Control Settings:拜访操控设置。

  • External Proxy Settings:外部署理设置。

  • Web Interface Settings:Web 界面设置。

我在运用中以为比较常用的是Throttle Settings(节省设置)

Throttle Settings 和 Start/Stop Throttling 配合运用,在 Start Throttling 的状况下,能够经过 Throttle Settings 装备 Charles 的网速模拟装备。Throttle Settings 的视图如下图所示:

Charles 小白入门

勾选 Enable Throttling 启用网速模拟装备,在 Throttle Preset 下选择网络类型即可,具体设置能够依据实际情况自行设置。假如只想模拟指定网站的慢速网络,能够再勾选上图中的 Only for selected hosts 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

Throttle Settings 视图中的选项意义如下:

  • Bandwidth:带宽
  • Utilistation:运用百分比
  • Round-trip:往返推迟
  • MTU:字节
Tools菜单
  • No Caching Settings:禁用缓存设置。

  • Block Cookies Settings:禁用 Cookie设置。

  • Map Remote Settings:长途映射设置。

  • Map Local Settings:本地映射设置。

  • Rewrite Settings:重写设置。

  • Black List Settings:黑名单设置。

  • White List Settings:白名单设置。

  • DNS Spoofing Settings:DNS 欺骗设置。

  • Mirror Settings:镜像设置。

  • Auto Save Settings:主动保存设置。

  • Client Process Settings:客户端进程设置。

  • Compose:修正修正。

  • Repeat:重复发包。

  • Repeat Advanced:高档重复发包。

  • Validate:验证。

  • Publish Gist:发布要点。

  • Import/Export Settings:导入/导出设置。

  • Profiles:装备文件。

  • Publish Gist Settings:发布要点设置。

图标菜单

  • :清除捕获到的一切恳求

  • Charles 小白入门
    :启用SSL署理

  • :红点状况阐明正在捕获恳求,灰色状况阐明现在没有捕获恳求。

  • :灰色状况阐明是没有敞开网速节省,绿色状况阐明敞开了网速节省。

  • :灰色状况阐明是没有敞开断点,赤色状况阐明敞开了断点。

  • :修正修正恳求,点击之后能够修正恳求的内容。

  • :重复发送恳求,点击之后选中的恳求会被再次发送。

  • :验证选中的恳求的呼应。

  • :常用功用,包含了 Tools 菜单中的常用功用。

  • :常用设置,包含了 Proxy 菜单中的常用设置。

抓取 Https

在Android设备上抓取https的数据时, 首要需要确保电脑和手机要在同一个路由器网络下

PC端
  • 需要关掉防火墙,或许将Charls答应经过防火墙。

  • 翻开 Charles 的署理功用:经过主菜单翻开 Proxy | Proxy Settings 弹窗,填入署理端口(端口默以为 8888,不用修正),勾选 Enable transparent HTTP proxying

  • 假如不需要抓取电脑上的恳求,能够撤销勾选 Proxy | Windows ProxyProxy | Mozilla FireFox Proxy

  • 装置 Charles 证书:经过 Charles 的主菜单Help | SSL Proxying | Install Charles Root Certificate装置证书。(需要将证书设置为信任可参阅 Charles证书装置 )

  • 翻开SSL署理 Proxy->SSL Proxying Settings->SSL Proxying->Add

    Charles 小白入门

Host: 为需要过滤的域名地址,*表示不过滤

Port: 固定为443,*表示恣意端口

手机端
  • 经过 Charles 的主菜单Help | Local IP Address或许经过命令行东西输入ipconfig查看本机的 IP 地址。

  • 设置署理:翻开手机端的 WIFI 署理设置,输入电脑 IP 和 Charles 的署理端口。

  • 确保手机经过Charles设置的署理衔接成功后,运用手机上原生的浏览器拜访chls.pro/ssl,装置证书。(假如手机无法完成装置,可经过电脑下载下来并修正后缀为.crt,复制到手机根目录进行装置)。

  • 现在就能够正常抓取Https包了

文章参阅:

/post/684490… /post/684490…