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數據已修改為替換值,完成~

 

三、Breakpoints

使用Breakpoints攔截響應,修改Response請求或響應
  1. 設置斷點:找到要設置斷點的鏈接,右鍵 -> Breakpoints,勾選后工具欄上方顯示紅色的"√"狀態

    

  2. 點擊Charles菜單-【Proxy】-【Breakpoint...】,此時會彈出【BreakpointsSettings】對話框

  

  3. 雙擊【Location】內的接口地址,此時會彈出【Edit Breakpoint】對話框,

    在【Query】項輸入:*即匹配所有的參數;

    如果修改Request數據,就將Request勾選;如果修改Response數據,就將Response勾選。

    

  4. 點擊ok, 重新請求該接口。 當跑到設置斷點的接口時,網頁會暫停,這個時候Charles進入breakpoints 

  

  5. Edit Response-->Excute:修改響應內容。

注:因使用Breakpoint除非你操作夠快否則很容易超時,建議先保存到本地,直接粘貼復制節省時間。點擊Excute后,頁面上展示的為修改后的response。完成~

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM