mac本charles設置只抓取指定app的網絡請求,需要進行一些配置。這并非一個簡單的開關操作,需要對charles的規(guī)則設置有一定的理解。
直接在Charles的“Proxy”->“Recording Settings”里設置全局代理抓包是無法實現只抓取特定App請求的。 我曾經嘗試過這種方法,結果抓取了系統所有App的網絡請求,數據量巨大,分析起來非常費時費力,效率極低。 后來才明白,需要利用Charles的規(guī)則功能。
正確的做法是利用Charles的“Map Local”功能,或者更精確的“Rewrite”功能。 先說“Map Local”: 假設你想要抓取名為“ExampleApp”的App的請求,你需要找到這個App的網絡請求。 這可以通過在Charles界面中,點擊“Clear”按鈕清空之前的請求記錄,然后運行ExampleApp,進行一些網絡操作,例如登錄或刷新數據。 Charles會記錄下ExampleApp發(fā)出的請求。
找到ExampleApp的請求后,選擇其中一個請求,右鍵點擊,選擇“Map Local”。 這時會彈出一個窗口,讓你指定一個本地的文件或文件夾來替換服務器的響應。 這里我們并不需要替換響應,所以選擇一個空文件夾即可。 關鍵在于,Charles會根據你選擇的請求的域名或URL,建立一個映射規(guī)則。 只有匹配到這個規(guī)則的請求才會被Charles攔截和顯示。 這意味著,其他App的請求將不會被Charles記錄。
然而,”Map Local”有時會不夠精準,特別是當App使用了復雜的域名或多個域名時。這時,“Rewrite”功能就派上用場了。 “Rewrite”允許你更精細地控制哪些請求被攔截。 你可以設置匹配規(guī)則,例如匹配特定URL路徑或請求參數。 這需要你對目標App的網絡請求有一定的了解,例如知道它使用的API接口地址。 我曾經調試一個使用了多個子域名的App,”Map Local”無法精確抓取,最后只能用”Rewrite”,逐個添加匹配規(guī)則才成功。 這個過程需要耐心和細致,需要仔細觀察App的網絡請求,才能編寫出正確的規(guī)則。
記住,在使用Charles之前,你需要確保你的手機或模擬器已經正確地配置了Charles的代理。 這通常涉及到在手機或模擬器上設置代理服務器地址和端口號,這些信息可以在Charles的“Proxy”->“Proxy Settings”中找到。 如果你的設備無法連接到Charles,請檢查網絡設置和防火墻設置。
總而言之,成功抓取特定App的網絡請求需要結合Charles的“Map Local”和“Rewrite”功能,并需要對目標App的網絡請求有一定的了解。 這是一個需要實踐和經驗積累的過程,但掌握了這些技巧,就能高效地進行App調試和性能分析。
路由網(www.lu-you.com)您可以查閱其它相關文章!