69.使用charles對(duì)app請(qǐng)求進(jìn)行抓包权烧,請(qǐng)求斷點(diǎn),修改請(qǐng)求與返回的數(shù)據(jù)伤溉,重新發(fā)送請(qǐng)求(面試點(diǎn):點(diǎn)擊高級(jí)般码,去掉代理中所有勾選項(xiàng))

在App開發(fā)與后臺(tái)聯(lián)調(diào)過(guò)程中,經(jīng)常會(huì)遇到后臺(tái)數(shù)據(jù)返回不全谈火,請(qǐng)求參數(shù)需要修改侈询,請(qǐng)求需要重發(fā)等情況舌涨。
如果每次都在app端修改糯耍,或者自己造數(shù)據(jù),會(huì)增加工作量囊嘉,而且每次要重新運(yùn)行app温技,浪費(fèi)時(shí)間。
因此扭粱,經(jīng)過(guò)研究舵鳞,可以使用抓包工具charles,對(duì)app進(jìn)行抓包琢蛤,請(qǐng)求斷點(diǎn)蜓堕,修改請(qǐng)求與返回的數(shù)據(jù),重新發(fā)送請(qǐng)求博其。
簡(jiǎn)單的抓包流程與charels設(shè)置這里不做過(guò)多介紹套才,這里舉例子使用的是charles4.1.
首先看,主要的按鈕介紹:

20170908114315039.png

①重新發(fā)送指定請(qǐng)求:

在發(fā)送一次請(qǐng)求后慕淡,在左邊列表選中該請(qǐng)求背伴,點(diǎn)擊如上圖所示重新發(fā)送按鈕即可模擬請(qǐng)求。

②請(qǐng)求斷點(diǎn):

點(diǎn)擊如上圖請(qǐng)求斷點(diǎn)按鈕峰髓,開啟請(qǐng)求斷點(diǎn)傻寂。進(jìn)行過(guò)網(wǎng)絡(luò)請(qǐng)求后,選中該請(qǐng)求携兵,右鍵疾掰,點(diǎn)擊breakPoint,設(shè)置該請(qǐng)求的斷點(diǎn)徐紧。
斷點(diǎn)設(shè)置成功静檬,頁(yè)面處于loading狀態(tài)

20180526132356158.png

然后再進(jìn)行一次該地址的請(qǐng)求勒葱,便可在斷點(diǎn)處修改請(qǐng)求參數(shù)與返回的參數(shù)。

20170908114956316.png
20170908134214303.png

第三步巴柿,點(diǎn)擊Execute后凛虽,等數(shù)據(jù)返回進(jìn)行修改response的數(shù)據(jù),再次點(diǎn)擊Execute广恢,即可實(shí)現(xiàn)篡改返回?cái)?shù)據(jù)來(lái)進(jìn)行app的測(cè)試凯旋,eg:修改訂單狀態(tài)等。

20180526132418378.png

轉(zhuǎn)手機(jī)的包的步驟:
如果是使用charles抓包钉迷。一定要tm的保證手機(jī)和電腦連的是一個(gè)網(wǎng)至非。
1、proxy setting糠聪,查看Charles荒椭,端口


1162361-20170519150348775-1904731167.jpg

2, 勾選


1162361-20170519150518260-633012227.jpg

3、ipconfig舰蟆,查看自己電腦的ip地址
4趣惠、手機(jī)通過(guò)設(shè)置http代理服務(wù)器,連接到電腦服務(wù)器輸入電腦的ip端口和charles的端口一致身害,


1162361-20170519150933291-424282292.jpg

5味悄、此時(shí)charles會(huì)給出提示。有新的連接塌鸯。點(diǎn)擊allow
6侍瑟、連接成功,此時(shí)手機(jī)發(fā)送的內(nèi)容丙猬,charles可以抓到涨颜。

Charles安裝和抓包及報(bào)錯(cuò)
1.charles安裝

下載charles4.0.1破解版,官方下載只能試用30天茧球。網(wǎng)盤下載地址:https://pan.baidu.com/s/1eSwwvo2庭瑰。(里面包括.dmg(用于安裝)和.jar文件(用于破解))破解方法:在Finder的應(yīng)用程序中找到Charles.app,右鍵選擇“顯示包內(nèi)容”袜腥,之后進(jìn)入Contents文件夾见擦,接著進(jìn)入Java文件夾,用破解文件(也就是jar文件)替換charles.jar文件羹令。到此就破解了鲤屡。

image.png

2.安裝證書如果你需要截取分析 Https 協(xié)議相關(guān)的內(nèi)容。那么需要安裝 Charles 的 CA 證書福侈。具體步驟如下酒来。我們需要在 Mac 電腦上安裝證書。點(diǎn)擊 Charles 的頂部菜單肪凛,選擇 “Help” –> “SSL Proxying” –> “Install Charles Root Certificate”堰汉,然后輸入系統(tǒng)的帳號(hào)密碼辽社,即可在 KeyChain 看到添加好的證書。(如果證書是不信任的那就設(shè)置為信任)如下圖:

image.png

雙擊Charles證書:

image.png

選擇始終信任:

image.png

3.設(shè)置charles要截取 iPhone 上的網(wǎng)絡(luò)請(qǐng)求翘鸭,我們首先需要將 Charles 的代理功能打開滴铅。在 Charles 的菜單欄上選擇 “Proxy”–>“Proxy Settings”,填入代理端口 8888就乓,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的設(shè)置汉匙。如下圖:

填入的端口號(hào)和 Charles中的Proxy Settings,一樣

image.png

4.iPhone上面的設(shè)置生蚁。


image.png

首先我們需要獲取 Charles 運(yùn)行所在電腦的 IP 地址噩翠,Charles 的頂部菜單的 “Help”–>“Local IP Address”,即可在彈出的對(duì)話框中看到 IP 地址邦投,如下圖:在 iPhone 的 “ 設(shè)置 ”–>“ 無(wú)線局域網(wǎng) ” 中伤锚,可以看到當(dāng)前連接的 wifi 名,通過(guò)點(diǎn)擊右邊的詳情鍵志衣,可以看到當(dāng)前連接上的 wifi 的詳細(xì)信息屯援,包括 IP 地址,子網(wǎng)掩碼等信息蠢涝。在其最底部有“HTTP 代理”一項(xiàng)玄呛,我們將其切換成手動(dòng),然后填上 Charles 運(yùn)行所在的電腦的 IP和二,以及端口號(hào) 8888(若此時(shí)設(shè)置代理無(wú)效,則先忽略此網(wǎng)絡(luò)耳胎,重新連接后再設(shè)置代理即可)惯吕。如下圖:

image.png

5.安裝手機(jī)證書

image.png

如果我們需要在 iOS 或 Android 機(jī)器上截取 Https 協(xié)議的通訊內(nèi)容,還需要在手機(jī)上安裝相應(yīng)的證書怕午。點(diǎn)擊 Charles 的頂部菜單废登,選擇 “Help” –> “SSL Proxying” –> “Install Charles Root Certificate on a Mobile Device or Remote Browser”,然后就可以看到 Charles 彈出的簡(jiǎn)單的安裝教程郁惜。

image.png

注意:這邊的fe80:0:0:0:aebc:32 這是ipv6的地址

在手機(jī)safari上面輸入:chls.pro/ssl,安裝文件堡距。

image.png

通常這樣就可以進(jìn)行網(wǎng)絡(luò)抓包了。但是這只是僅僅針對(duì)http請(qǐng)求兆蕉。如果要抓取https請(qǐng)求羽戒,則還需要做第6步。我們先來(lái)看看沒有做第6步的情況虎韵。對(duì)一個(gè)接口打上Breakpoints易稠。在進(jìn)行網(wǎng)絡(luò)截取的時(shí)候會(huì)發(fā)現(xiàn)一直報(bào)錯(cuò)。

image.png
image.png

報(bào)Failed to parse headers:EOF reading HTTP headers,原因是不能截取https的網(wǎng)絡(luò)請(qǐng)求包蓝。

加上第6步即可驶社。此時(shí)如果碰到抓取到的https請(qǐng)求接口一直顯示紅色X<unknown>,則需要進(jìn)行如下操作:設(shè)置->通用->關(guān)于本機(jī)->證書信任設(shè)置->針對(duì)根證書啟用完全信任下的Charles Proxy CA開關(guān)打開企量。

6.勾選https的截取功能

image.png

Charles 默認(rèn)也并不截取 Https 網(wǎng)絡(luò)通訊的信息,如果你想對(duì)截取某個(gè)網(wǎng)站上的所有 HTTPS 網(wǎng)絡(luò)請(qǐng)求亡电,可以在該請(qǐng)求上右擊届巩,選擇 SSL proxy,如下圖:

這樣份乒,對(duì)于該 Host 的所有 SSL 請(qǐng)求可以被截取到了姆泻。當(dāng)截取到網(wǎng)絡(luò)請(qǐng)求紅色箭頭向下的時(shí)候即可改變網(wǎng)絡(luò)接口返回的內(nèi)容。比如此時(shí)可以將code碼改為000001冒嫡,data內(nèi)容也可以做修改拇勃。

image.png

Charles模擬網(wǎng)絡(luò)環(huán)境,限制網(wǎng)絡(luò)速度 Charles Throtting

image.png

image.png

開啟限制網(wǎng)絡(luò)孝凌,直接在烏龜上操作方咆,烏龜亮了,表示開啟了限制網(wǎng)絡(luò)

image.png

Charles mock假數(shù)據(jù)

前端開發(fā)經(jīng)常遇到自己邏輯寫完了但是接口還沒寫好蟀架,還得等著接口瓣赂,這時(shí)候就可以自己去造點(diǎn)假數(shù)據(jù)了。

一般后端先寫完接口文檔和前端定好數(shù)據(jù)結(jié)構(gòu)才去寫接口邏輯片拍,

而在后端接口邏輯寫完之前前端可能已經(jīng)把前端的邏輯寫好了煌集,

需要相應(yīng)的數(shù)據(jù)去鋪?lái)?yè)面,這時(shí)候我們就可以用Charles的mock功能在本地去模擬一些返回?cái)?shù)據(jù)

實(shí)戰(zhàn)經(jīng)驗(yàn):
IOS中實(shí)驗(yàn)捌省,要以.json 結(jié)尾來(lái)處理苫纤,以.txt 結(jié)尾的不行

配置如下:

1首先保證手機(jī)和pc在同一網(wǎng)絡(luò)環(huán)境下

2手機(jī)添加代理,主機(jī)名:pc的ip,端口:charles配置的端口號(hào)纲缓,我一般為8888

3在charles中右鍵某個(gè)要添加的接口選擇最下面的Map Local卷拘,情況Query那行,然后選擇本地json文件就可以了


image.png
image.png

android設(shè)置代理

操作路徑:設(shè)置-->WLAN祝高,選中網(wǎng)絡(luò)長(zhǎng)按(不同設(shè)備操作方式不一樣栗弟,有些事點(diǎn)擊更多按鈕)-->修改網(wǎng)絡(luò)-->高級(jí)選項(xiàng),將代理選項(xiàng)設(shè)置為手動(dòng)工闺,在代理服務(wù)器主機(jī)名處填寫你要設(shè)置的代理服務(wù)器IP乍赫,端口填寫對(duì)應(yīng)的端口(如Fiddler為8888),設(shè)置完畢后點(diǎn)擊保存即可

image.png

通常情況下用第一種方式即可完成代理設(shè)置陆蟆,不過(guò)有些android設(shè)備比較奇葩沒法通過(guò)上述方法設(shè)置或找不到設(shè)置入口的情況下也可以通過(guò)adb指令的方式設(shè)置代理

設(shè)置代理的時(shí)候雷厂,一定要勾選高級(jí)選項(xiàng),否則看不到設(shè)置代理的地方遍搞,如圖上邊的綠色勾選

當(dāng)網(wǎng)絡(luò)設(shè)置了vpn罗侯,用charles抓包,走的是android模擬器溪猿,操作模擬器钩杰,抓不到網(wǎng)絡(luò)的鏈接纫塌,是因?yàn)榫W(wǎng)絡(luò)沒有給模擬器設(shè)置代理

如何為android模擬器設(shè)置代理

屏幕快照 2020-06-17 下午3.14.45.png

這邊,然后退出模擬器讲弄,打開charles就可以監(jiān)聽到抓到模擬器的接口了

當(dāng)你的電腦有用vpn 鏈接公司網(wǎng)絡(luò)措左,你的手機(jī)在用charles代理鏈接你的電腦的wifi網(wǎng)絡(luò),有時(shí)候是連不上公司網(wǎng)絡(luò)避除,那你可以先把公司的vpn關(guān)了怎披,讓手機(jī)代理charles鏈接你的wifi網(wǎng)絡(luò),鏈接成功以后瓶摆,在vpn鏈接公司網(wǎng)絡(luò)

image.png

charles顯示這個(gè)提示的時(shí)候凉逛,一般是你鏈接代理的時(shí)候出現(xiàn)

用Charles抓包后,關(guān)閉状飞,網(wǎng)絡(luò)正常電腦無(wú)法打開網(wǎng)頁(yè)。解決辦法:

提示:正常情況下將wifi的代理 由手動(dòng)重新設(shè)置成自動(dòng)即可連接书斜。

1 打開網(wǎng)絡(luò)偏好設(shè)置

image.png

2 打開網(wǎng)絡(luò)代理 (點(diǎn)擊高級(jí))

image.png

3 去掉代理中所有勾選項(xiàng)诬辈;

image.png

然后保存就可以了。猜測(cè)原因是請(qǐng)求被攔截了或者是使用Charles時(shí)改了部分設(shè)置荐吉!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末焙糟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子样屠,更是在濱河造成了極大的恐慌穿撮,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞧哟,死亡現(xiàn)場(chǎng)離奇詭異混巧,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)勤揩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秘蛔,“玉大人陨亡,你說(shuō)我怎么就攤上這事∩钤保” “怎么了负蠕?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)倦畅。 經(jīng)常有香客問(wèn)我遮糖,道長(zhǎng),這世上最難降的妖魔是什么叠赐? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任欲账,我火速辦了婚禮屡江,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赛不。我一直安慰自己惩嘉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布踢故。 她就那樣靜靜地躺著文黎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪殿较。 梳的紋絲不亂的頭發(fā)上耸峭,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音淋纲,去河邊找鬼劳闹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛帚戳,可吹牛的內(nèi)容都是我干的玷或。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼片任,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼偏友!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起对供,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤位他,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后产场,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鹅髓,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年京景,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窿冯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡确徙,死狀恐怖醒串,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鄙皇,我是刑警寧澤芜赌,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站伴逸,受9級(jí)特大地震影響缠沈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一洲愤、第九天 我趴在偏房一處隱蔽的房頂上張望颓芭。 院中可真熱鬧,春花似錦禽篱、人聲如沸畜伐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)玛界。三九已至,卻和暖如春悼吱,著一層夾襖步出監(jiān)牢的瞬間慎框,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工后添, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笨枯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓遇西,卻偏偏與公主長(zhǎng)得像馅精,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粱檀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容