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