1.簡介
2.修改請求引數或者響應資料的方法
Map 功能適合長期地將某一些請求重定向到另一個網路地址或本地檔案。只能修改返回資料。
Rewrite 功能適合對網路請求進行一些正則替換。可修改請求資料和響應資料。
Breakpoints 功能適合做一些臨時性的修改。在響應時間內,可修改請求資料和響應資料。
2.1MAP(對映)
Charles 的map功能,就是將某個請求進行重定向,然後用重定向後的內容來修改請求內容;map又分Map Remote和Map Local,顧名思義:Map Remote 是將指定的網路請求重定向到另一個網址,Map Local 是將指定的網路請求重定向到本地檔案。
2.2Rewrite(重寫)
Rewrite 功能功能適合對某一類網路請求進行一些正則替換,以達到修改結果的目的。
2.3Breakpoint(打斷點)
上面提供的 Rewrite 功能最適合做批次和長期的替換,但是很多時候,我們只是想臨時修改一次網路請求結果,這個時候,使用 Rewrite 功能雖然也可以達到目的,但是過於麻煩,對於臨時性的修改,我們最好使用 Breakpoints 功能。
Breakpoints 功能類似我們在 Xcode 中設定的斷點一樣,當指定的網路請求發生時,Charles 會截獲該請求,這個時候,我們可以在 Charles 中臨時修改網路請求的返回內容。
3.修改請求內容
3.1方法一:直接選中修改
有些時候為了除錯伺服器的介面穩定性和容錯性,我們需要反覆嘗試不同引數的網路請求。Charles 可以方便地提供網路請求的修改和重發功能。具體操作步驟如下:
1.只需要在以往的網路請求上點選右鍵,選擇 “Compose”,即可建立一個可編輯的網路請求。這裡宏哥還是利用上一篇中的介面進行演示。如下圖所示:
2.我們可以修改該請求的任何資訊,包括 URL 地址、埠、引數等,之後點選 “Execute” 即可傳送該修改後的網路請求(如下圖所示)。Charles 支援我們多次修改和傳送該請求,這對於我們和伺服器端除錯介面非常方便,如下圖所示:
3.將1801修改成1802,傳送預期結果返回李四實際結果一樣,如下圖所示:
3.2Rewrite(重寫)
Rewrite 功能功能適合對某一類網路請求進行一些正則替換,以達到修改結果的目的。
1.例如,還是用之前API 請求是獲得使用者賬戶資訊,而我當前的賬戶是 “張三”,如下圖所示:
2.我們想試著直接修改請求引數,將 1801 換成成 1802。於是我們啟用 Rewrite 功能,點選選單欄tools-->Rewrite,如下圖所示:
3.勾選“Enable Rewrite”,點選“Add”,然後設定如下的規則,如下圖所示:
4.瀏覽器訪問或者其他介面工具重新傳送請求,預期結果返回李四與實際結果一樣,如下圖所示:
3.3Breakpoint(打斷點)
上面提供的 Rewrite 功能最適合做批次和長期的替換,但是很多時候,我們只是想臨時修改一次網路請求結果,這個時候,使用 Rewrite 功能雖然也可以達到目的,但是過於麻煩,對於臨時性的修改,我們最好使用 Breakpoints 功能。
Breakpoints 功能類似我們在 Xcode 中設定的斷點一樣,當指定的網路請求發生時,Charles 會截獲該請求,這個時候,我們可以在 Charles 中臨時修改網路請求的內容。
打斷點修改請求的方法已經在上一篇文章中進行了詳細的介紹,這裡宏哥就不做贅述了。
需要注意的是,使用 Breakpoints 功能將網路請求截獲並修改過程中,整個網路請求的計時並不會暫停,所以長時間的暫停可能導致客戶端的請求超時。嘿嘿!這個就要考驗你的手速了。
4.小結
宏哥這裡總共介紹了三種設定修改請求引數的方式,一般工作中,我們要根據需要靈活變換方法,而不是一成不變的。好了,今天時間也不早了,講解和分享就到這裡!感謝您耐心的閱讀~~