簡述
在測試app的時候,比如:頁面無法展示內(nèi)容(由服務(wù)端接口返回值提供),往往就需要去定位問題,找到所拋出的請求是否異常,pc瀏覽器和mac瀏覽器訪問是可以通過平臺提供的軟件(Charles&fiddler)來實現(xiàn),那么如何抓到手機拋出的請求呢?實現(xiàn)抓取手機網(wǎng)絡(luò)請求
這里分別介紹兩種工具在兩種平臺下的使用方法
- (2015/12/02 更新 加入抓取https的設(shè)置方法)
①、Pc windows+fiddler(Http&Https)
條件:
第一種為適用于windows平臺,適用fiddler來實現(xiàn)抓取手機網(wǎng)絡(luò)請求。
1、windows安裝fiddler
2、pc和手機需要在同一局域網(wǎng)下(二級路由也沒有問題)
第一步:安裝設(shè)置fiddler代理
Fiddler --> Tools --> Fiddler Options --> connections
在Fiddler listen on port中填入一個自定義4位數(shù)端口號(不能以0開頭)
勾選選項“Allow remote computers to connect”
至此fiddler的代理設(shè)置已完成(設(shè)置完成后不要關(guān)閉fiddler)
第二步:手機設(shè)置連接fiddler代理
這里以ios 設(shè)備為例;(安卓也是一樣的)
打開手機的WIFI設(shè)置,連接局域網(wǎng)可用WIFI;點擊已連接WIFI后的 i 標志;進入網(wǎng)絡(luò)代理設(shè)置
設(shè)置HTTP代理為手動,填入fiddler所在的pc機ip地址,以及設(shè)置的Fiddler listen on port并保存
!設(shè)置截獲Https請求(Fiddler)
依次找到菜單:FiddlerOption --> https標簽
1.勾選 Captrue HTTPS CONNECTs
和 Decrypt HTTPS traffic
選項
2.手機安裝fiddler信任證書以iPhone為例,安卓同理
安卓和IOS均要使用手機系統(tǒng)瀏覽器,然后輸入代理ip和端口號來訪問你的fiddler代理ip:
如下圖(代理fiddler的pc的ip是192.168.101.34,端口號8888)
如果代理成功的話,會看到以下頁面,如果不成功請檢查ip和防火墻
點擊“FiddlerRoot certificate”會跳轉(zhuǎn)到系統(tǒng)證書安裝確認頁面:
<b>安裝完成之后,再次訪問指定網(wǎng)頁,所有的https請求的返回值你都可以看得到了~</b>
②、Mac+Charles
條件:
第二種為適用于mac os平臺,使用charles來實現(xiàn)抓取手機網(wǎng)絡(luò)請求。
1、mac os 安裝charles(charles工具試用期是30天的,破解教程自行度娘或者call me)
2、mac os 和手機需要在同一局域網(wǎng)下 (二級路由無效)
第一步:設(shè)置Charles代理
1、運行Charles程序,設(shè)置port
Proxy --> ProxySettings --> Proxies --> httpProxy
第二步:獲取mac os當前ip
按住option鍵,點擊右上角的wifi圖標即可看到IP:
第三步:設(shè)置手機HTTP代理
3、打開iOS設(shè)置,進入當前wifi連接,設(shè)置HTTP代理,將服務(wù)器填為上一步中獲得的IP,即192.168.199.147,端口填8888:
<b>結(jié)尾:在不使用的時候需要將手機中得HTTP代理關(guān)閉,否則pc或者mac關(guān)機或者關(guān)閉軟件后,手機無法正常上網(wǎng)!</b>
!設(shè)置截獲Https請求(Charles)
如果不進行下面的設(shè)置,https的reqeust和response都是亂碼,設(shè)置完之后https就可以抓包了。
Mac端安裝證書操作:
點擊Charles菜單的help->SSL->proxying->install charles root certificate
<b>在到電腦的鑰匙串中信賴剛剛的證書:</b>
手機端安裝證書操作:
下載 Charles證書解壓后導(dǎo)入到iOS設(shè)備中(將crt文件作為郵件附件發(fā)給自己,再在iOS設(shè)備中點擊附件即可安裝;也可上傳至百度之類的網(wǎng)盤,通過safari下載安裝)
電腦端操作:
1、在Charles的工具欄上點擊設(shè)置按鈕,選擇Proxy Settings…
切換到SSL選項卡,選中Enable SSL Proxying。(別急,選完先別關(guān)掉)
2、SSL選項卡的Locations里填寫要抓包的域名和端口,點擊Add按鈕,在彈出的表單中Host填寫域名。比如填api.baidu.com,Port填443
!!!信任證書
很多小伙伴在設(shè)置好代理,裝好證書之后依然會出現(xiàn)https請求無法解包的情況!經(jīng)過一段時間研究,找資料發(fā)現(xiàn)原來僅僅只是需要一個小設(shè)置即可!
設(shè)置-通用-關(guān)于本機-證書信任設(shè)置 , 打開相應(yīng)證書的開關(guān)即可
打開對應(yīng)證書開關(guān)