之前一直用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格式)

  

charles一直乱码 charles localmap_右键

  1.2 右击选择Map local:点击接口-->右键-->Map Local进入Map Edit页面

  

charles一直乱码 charles localmap_数据_02

  1.3  配置Map Local Map To本地文件:Edit Mapping-->Map To选择你保存到本地已修改的json文件

  • protocol:接口协议
  • Host:接口URL粘进去,自动分解到host与path文本框中
  • port:*(匹配全部)
  • Query: *(匹配全部)

    

  

charles一直乱码 charles localmap_charles一直乱码_03

       1.4 再次请求接口,接口返回response已经变成本地json文件的值。完成~

 

  1.5  关闭Map Local:点击charles工具栏中的工具,取消map Local勾选,即将本地映射关闭

charles一直乱码 charles localmap_数据_04

 

二、Rewrite  

request)和返回(response)的modify工具

  1. 打开charles,点击菜单栏tools-->Rewrite

   

charles一直乱码 charles localmap_charles一直乱码_05

  1. 弹出Rewrite Settings界面,选择Enable Rewrite,点击Add,此时会出现一个Unitled Set
  • Enable Rewrite:允许使用Rewrite
  •  Add-Name:支持修改被篡改的接口的名称

  

charles一直乱码 charles localmap_右键_06

Location下方的Add,出现二级界面

  • 选择自己需要的Protocol(http/https)
  • 放入需要访问的接口地址api,会自动将URL的内容分解host和path文本框中
  • Port和Query改为*(也可自定义)

  

charles一直乱码 charles localmap_重定向_07

  4.篡改规则:点击下方的第二个add,填写重写规则

  • Type: 重写的类型,可以选择url/body等
  • where:选择修改request或reponse
  • Match--Value:匹配现有的值(支持正则匹配)
  • Replace:替换值
  • Replace first:仅替代掉第一个被匹配的值
  • Replace all:替代到所有被匹配的值

charles一直乱码 charles localmap_右键_08

  5. 重新刷下接口,可以看到APP数据已修改为替换值,完成~

 

三、Breakpoints

使用Breakpoints拦截响应,修改Response请求或响应

  1. 设置断点:找到要设置断点的链接,右键 -> Breakpoints,勾选后工具栏上方显示红色的"√"状态

    

charles一直乱码 charles localmap_charles一直乱码_09

点击Charles菜单-【Proxy】-【Breakpoint...】,此时会弹出【BreakpointsSettings】对话框

  

charles一直乱码 charles localmap_数据_10

双击【Location】内的接口地址,此时会弹出【Edit Breakpoint】对话框,

    在【Query】项输入:*即匹配所有的参数;

    如果修改Request数据,就将Request勾选;如果修改Response数据,就将Response勾选。

    

charles一直乱码 charles localmap_右键_11

点击ok, 重新请求该接口。 当跑到设置断点的接口时,网页会暂停,这个时候Charles进入breakpoints 

  

charles一直乱码 charles localmap_charles一直乱码_12

Edit Response-->Excute:修改响应内容。

注:因使用Breakpoint除非你操作够快否则很容易超时,建议先保存到本地,直接粘贴复制节省时间。点击Excute后,页面上展示的为修改后的response。完成~

  

charles一直乱码 charles localmap_重定向_13

 

每天进步一小步 日积月累跨大步