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