charles技能之修改请求参数/返回数据(map Local、Rewrite、Breakpoints)
- 2020 年 11 月 18 日
- 筆記
- Charles
之前一直用postman调接口比较多,但有时候想要去修改APP的页面展示,造数据又会比较麻烦,此时可以用以下三种方法修改请求参数或修改响应:
map Local(本地映射)、Breakpoints(打断点)、Rewrite(重写)
MAP重定向:
Charles 的map功能,就是将某个请求进行重定向,然后用重定向后的内容来修改请求内容;map又分Map Remote和Map Local,Map Remote 是将指定的网络请求重定向到另一个网址,Map Local 是将指定的网络请求重定向到本地文件。
map Local:只能修改返回数据
Rewrite:可修改接口的请求和响应
Breakpoints:可以修改该接口的请求和返回数据,在响应时间内。
一、Map Local
Map Local的使用场景,要验证接口返回数据的各种场景,使用本地映射可以修改请求接口的response。
1.1 保存接口响应:右键–>save response–>保存到本地路径(最好为json格式)
1.2 右击选择Map local:点击接口–>右键–>Map Local进入Map Edit页面
1.3 配置Map Local Map To本地文件:Edit Mapping–>Map To选择你保存到本地已修改的json文件
- protocol:接口协议
- Host:接口URL粘进去,自动分解到host与path文本框中
- port:*(匹配全部)
- Query: *(匹配全部)
1.4 再次请求接口,接口返回response已经变成本地json文件的值。完成~
1.5 关闭Map Local:点击charles工具栏中的工具,取消map Local勾选,即将本地映射关闭
二、Rewrite
Rewrite:可用于修改请求(request)和返回(response)的modify工具
- 打开charles,点击菜单栏tools–>Rewrite
- 弹出Rewrite Settings界面,选择Enable Rewrite,点击Add,此时会出现一个Unitled Set
-
-
- Enable Rewrite:允许使用Rewrite
- Add-Name:支持修改被篡改的接口的名称
3. 点击Location下方的Add,出现二级界面
-
-
- 选择自己需要的Protocol(http/https)
- 放入需要访问的接口地址api,会自动将URL的内容分解host和path文本框中
- Port和Query改为*(也可自定义)
4.篡改规则:点击下方的第二个add,填写重写规则
-
- Type: 重写的类型,可以选择url/body等
- where:选择修改request或reponse
- Match–Value:匹配现有的值(支持正则匹配)
- Replace:替换值
- Replace first:仅替代掉第一个被匹配的值
- Replace all:替代到所有被匹配的值
5. 重新刷下接口,可以看到APP数据已修改为替换值,完成~