Charles 的 调试 & Mock 数据技巧

Charles 拥有 Map 、Rewrite、Breakpoint 3大调试技巧,非常值得客户端开发学习一波。

Charles 的 Map Local 功能(将网络请求重定向到本地文件)

针对一个有数据的请求,提前把 Response 保存到本地

在charles「Tools -> Map Local」
勾选 Enable Map Local,点击 Add 添加一个规则

填写对应匹配规则,然后指向本地一个文件路径,点击OK。

命中规则后,会在Overview界面里有一条Note记录。

也可以对着某个请求,右键,选择「Map Local…」

这样可以自动填充url规则





——————————————————————————————

Charles 的 Rewrite 功能(将网络请求改写)

勾选Enable Rewrite,点击 Add 添加一个规则


Rewrite 玩法一: 改写Response的某个开关的值
很多时候你只想改某个值,使用 Map Local 太重又很繁琐。而且把不相关的返回都固定下来了。此时就可以使用 Rewrite 修改某一个值。
先添加一个拦截规则

配置Rewrite规则是,针对response的body。把「“is_new_page”:0,」替换为「“is_new_page”:1,」
!!!注意冒号:后面不能有空格!!!

Rewrite如果命中了,会在Overview界面里有一条Note记录。


Rewrite 玩法二: 改写host指向某个域名

经常的场景是,后端开发说「我这代码还没稳定,还不敢发布到测试环境,要不你来连我的本机IP」,此时就可以使用这个功能。

其他的 Rewrite rule type 看字面意思都能理解,怎么使用我们就靠自己发挥想象力了。





——————————————————————————————

Charles 的 Map Remote 功能(将网络请求重定向到其他域名)

如果会用了Map Local,那看Map Remote这界面应该挺好理解。比上面介绍的 Rewrite host 或者 Rewrite url 更强大。

这功能我一开始用的不多,主要想着「本来就是后端没开发好,才用Charles 的 Map Local 指向一个本地的文件,可以提前模拟请求结果,这让我重定向到其他远端有什么用?」
然后我发现了 Easy Mock 这种第三方平台,可以很方便的管理 Mock 数据和 API 文档,创建的 Mock 接口可以同时供多个开发者使用。并且还有一些黑魔法。

比如按照这个网站设定的语法,写成「@pick([‘张三’, ‘李四’, ‘王五’, ‘赵六’])」 这种样式,可以随机返回 张三、李四、王五。还有随机生成字符串、随机生成邮箱等语法功能。





——————————————————————————————

Charles 的 Breakpoints 功能(断点)

设置断点后,可以随意改写 Request 继续发送,也可以改写 Response 供客户端使用。然后这个功能很强大,但是开发很少用。因为客户端请求普遍都设置了超时时间,手忙脚乱在10秒内改请求内容,这体验简直了。





——————————————————————————————

Charles基础配置使用

1.查看IP地址

在网络设置中 或者 在charles「Help -> Local IP Address」查看IP地址

2.设置Charles端口

在charles「Proxy -> Proxy Settings」设置端口
比如这里是8888

3.手机WIFI配置代理

输入上面两个步骤获取到的 IP 和 端口

为了实现可以抓https的请求,还需要在手机安装charles证书。这里以Android手机为例子。

4.配置HTTPS证书

保存Charles证书到本地

5.手机安装Charles证书

把证书上传到手机,如使用命令 adb push /Users/Yao/Downloads/charles-ssl-proxying-certificate.pem /sdcard/Download/
Android手机普遍直接直接点开文件安装会提示「没有找到应用打开该类型文件」
以MIUI为例,可以通过以下路径安装「WLAN页面」->「高级设置」->「安装证书」,找到自己的charles证书点击安装。
如果没有找到,可以尝试这个路径「密码、隐私与安全」->「系统安全」->「加密与凭证」→「从存储设备安装」。

6.允许SSL代理

在charles「Proxy -> SSL Proxying Settings」设置允许抓取的SSL匹配规则,这里配置了允许抓取所有SSL连接。

以上就配置完Charles基础抓包设置了。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值