為網路請求返回假數據
在實際的開發中,已經不滿足只在本地添加假數據的方法了,而且本地添加的代碼還需要進行額外的維護。所以想著去了解有沒有簡單的在線構造假數據,然後發現原來抓包神器Charles在這方面的處理也是很厲害的。
整個介紹過程以mac電腦上的模擬器為例來配置和處理從而來實現網路傳輸假數據!
① Charles 只抓取mac電腦上的請求
方法一:點擊Proxy ->macOS Proxy
方法二:直接配置Proxy Settings,讓charles開啟的時候默認監聽macOS中的數據請求
② 證書配置
當設置監聽macOS請求之後,會發現監聽的HTTPS請求只會出現域名而沒有顯示全部的路徑:
右方有提示:
SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations
既然都這麼說了,那就為該域名開啟SSL proxy。直接右擊該域名:
開啟之後如果你心滿意足的開始測試的話,會發現上面出現前面向上的箭頭全部變成了?。這是因為對於HTTPS請求而言,並沒有在電腦或模擬器中安裝cherles的證書.
You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
charles也意思到這個問題了,所以官方也有相應簡化的處理.
在mac電腦中安裝root 證書,當然要在鑰匙串中選擇"始終信任"
然後在simulators模擬器中安裝證書,這裡有一個小坑:
進入模擬器的 設置 ->通用 ->關於本機 ->證書信任設置 後,選擇出現的charles Proxy後,只要離開這個頁面再次返回的時候發現charles證書自動的設置為不信任了,嘗試了好多遍,在iPhoneX上都是這樣。
後來發現應該是系統延誤的問題,退出所有的模擬器,再次進入的時候就會沒有有問題。所以如果遇到不要心急..
③對特定的網路請求模擬假數據
對HTTPS請求配置OK後,右擊選中某一個路徑,選中map local映射到本地文件:
然後,重點來了,咚咚咚咚~~~
Map From中的設置針對於真正的一次網路請求,所以Path指的就是網路請求的路徑,而Query因為可能會存在時間戳等可變的欄位,所以直接設置為*即可。
Map To中的設置針對於映射的本地文件路徑,所以Local path填配置好的json文件即可,點擊ok後再次請求,該網路請求已經返回自己配置的假數據。
在實際開發中的運用確實有很多值得關注的細節點,有趣~~
TAG:李周筆記 |