Charles使用详解(For macOS)

Charles使用详解

  • 下载安装
  • 基础配置
  • 高级功能
    • 请求映射
      • Map Local
      • Map Remote
      • 取消结果替换
    • 断点调试
    • 修改请求
    • 模拟网络环境
    • 其他小功能
      • 重复请求
      • 专注个别请求
      • 去除缓存
      • 阻塞请求
  • 常见问题:

下载安装

官网下载安装一个免费试用版,激活可以在网上找激活码激活即可。
下载地址:https://www.charlesproxy.com/download/

PS: 不激活就隔一段时间就重启,隔一段时间就要等几秒广告。难受滴很。
Charles使用详解(For macOS)_第1张图片

基础配置

  1. 手机电脑连接同一网络(同一wifi或同一路由器网络下等)
  2. Charles菜单-> Proxy->开启Recoding和SSL Proxying
  3. Charles菜单-> Proxy->SSL Proxying Setting,设置要代理的域名。如果所有请求都抓,可参考设置:
    Charles使用详解(For macOS)_第2张图片
  4. 手机设置wifi->高级设置->代理->手动
    主机名: 使用Charles的电脑的ip地址
    代理端口: Charles默认开启端口8888
  5. 手机打开浏览器(最好Chrome 或 系统自带的浏览器)访问:chls.pro/ssl ,会自动下载一个CA证书
  6. 打开手机的设置->搜索CA证书->安装证书(各个机型不一样,有的是为本机用户安装,有的可以直接安装)
  7. 安装证书后,Charles会显示:Charles使用详解(For macOS)_第3张图片
    点击Allow
  8. 重新启动Charles
  9. 查看Charles,应该可以正常抓包了,包括HTTPS的包。

高级功能

请求映射

Map Local

Map Local就是将请求结果替换成本地数据。用的比较多的场景是mock数据修改;接口方开发未完成时根据协议先进行调试等。
路径: 右键请求->选择Map Local
如:Charles使用详解(For macOS)_第4张图片
Charles使用详解(For macOS)_第5张图片
Tips: 可以保存当前接口返回的数据格式,然后直接在此基础上编辑。(在请求上右击有一个save Response可以保存到本地)

Map Remote

可以将当前请求指向另一个请求。比较常见场景是用在替换域名或者替换请求参数之类。可以直接在测试包下请求生产环境请求,可以自己主动更改请求参数等。
路径: 右键请求->选择Map Remote
Charles使用详解(For macOS)_第6张图片

Charles使用详解(For macOS)_第7张图片

取消结果替换

顶部导航栏->Tools->Map Local(Map Remote)
Charles使用详解(For macOS)_第8张图片

断点调试

右键需要断点的接口,点击BreakPoint,然后在工具栏中点击下方按钮开启
Charles使用详解(For macOS)_第9张图片

在这里插入图片描述
接下来执行时,如果抓到这个请求,会先跳转到断点界面,允许用户Edit Request,此时是编辑发送的请求。
Charles使用详解(For macOS)_第10张图片
点击Execute之后,会再次触发断点,此时断点的是返回结果的时候,允许用户Edit Response。
Charles使用详解(For macOS)_第11张图片
此时再点击Executer之后,就会真正返回给客户端了。

注意: 如果修改的时间比较久,而超时时间设置的比较短,很快就超时了,就没有效果了。可以把超时设置的稍微久一点。

修改请求

选择一个请求,在上部工具栏有一个蓝色钢笔按钮(Compose a new request base on selection),可以修改当前请求的参数等,可以用来验证请求数据是否正常,验证请求参数异常情况的返回结果等。
Charles使用详解(For macOS)_第12张图片

Charles使用详解(For macOS)_第13张图片

模拟网络环境

模拟网络环境指的是模拟网速之类的,一般场景在测试弱网环境之类的。
路径: 顶部导航栏 -> Proxy -> Throttle Setting
Charles使用详解(For macOS)_第14张图片

PS: 工具栏里面的绿皮小龟可以快捷开关
在这里插入图片描述

其他小功能

重复请求

这个功能可以进行简单的一个压力测试。
路径: 需要重复的请求右键-> Repeat Advanced
Charles使用详解(For macOS)_第15张图片

专注个别请求

路径: 需要关注的请求右键-> Focus
关注的就在上面显示了,不关注的在下面OtherHosts中收起来了。这样比较清晰。可以只关注我们自己的APP的域名之类的。
在这里插入图片描述

去除缓存

有时候由于请求有缓存设置,导致我们可能很难执行后续的步骤。
路径: 需要去除缓存的请求右键-> No Caching
Charles使用详解(For macOS)_第16张图片

阻塞请求

这个功能主要是模拟一些网络异常的情况,可以直接阻塞接口。
路径: 需要阻塞的请求右键-> BlockList
Charles使用详解(For macOS)_第17张图片
设置阻塞的请求如何处理,可以直接抛弃,或者返回403
路径: 顶部导航栏 -> Tools -> Block List
Charles使用详解(For macOS)_第18张图片

常见问题:

1.手机安装了证书,但是存在部分HTTPS请求还是UnKnown状态。
可以看一下APP的网络安全设置,如果没有就加上下面代码这一段内容,代表在debug模式下允许app信任权限为user权限的证书。(官方说正常打debug包就自动会添加这个,但是在Flutter下好像不太行)

app/src/main/res/xml/network_security_config.xml
<debug-overrides>
    <trust-anchors>
        <certificates src="user"/>
    trust-anchors>
debug-overrides>

你可能感兴趣的:(开发辅助工具,macos,https,http)