charles技能之修改请求参数/返回数据(map Local、Rewrite、Breakpoints)

之前一直用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工具
  1. 打开charles,点击菜单栏tools–>Rewrite

   

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

  

  3. 点击Location下方的Add,出现二级界面

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

  

  4.篡改规则:点击下方的第二个add,填写重写规则
      • Type: 重写的类型,可以选择url/body等
      • where:选择修改request或reponse
      • Match–Value:匹配现有的值(支持正则匹配)
      • Replace:替换值
      • Replace first:仅替代掉第一个被匹配的值
      • Replace all:替代到所有被匹配的值

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

Tags: