Android 使用Fiddler抓取Https請求
在開發過程中我們一定碰到過需要檢視從伺服器請求下來的資訊是什麼樣的情況,一般使用log就可以檢視,但是有時候當請求下來的資訊特別多的時候則不怎麼好看了;如果是一般的get請求,只要結合谷歌瀏覽器的一個數據格式化外掛也可以看的很happy,但是萬一是post請求呢?特別還是https型別的請求呢?
這就是今天要說的一個抓包工具Fiddler了,Fiddler預設是抓取http型別的介面,而想要檢視https型別的介面就需要安裝Fiddler證書。接下來一步步來看:
操作步驟
一、前提
本文是在Windows 7 環境下進行,並且需要電腦和手機處於同一區域網。如果是桌上型電腦的朋友可以使用無線網絡卡;當然使用模擬器也可以。
二、下載安裝Fiddler
1、首先安裝Fiddler較新的版本,這裡不建議安裝老的版本,因為可能會出問題,下載傳送門:Fiddler:http://www.telerik.com/fiddler
2、安裝直接預設就行,安裝完後開啟Fiddler,點選工具欄的Tools -> Telerik Fiddler Options。選中HTTPS 勾選如圖:
中途會彈出安全方面的彈窗直接無視就行,畢竟我們本來乾的就不是什麼正常的事。
3、接著生成證書,還是HTTPS 裡面如上圖,點選右邊的Actions選擇Export Root Certificate to Desktop。意思是匯出證書並存至桌面。記住位置一會會用到。如圖:
4、切換到Connections欄,就在HTTPS旁邊,勾選如圖:
這裡埠號8888可以自己指定,這裡我們保持預設就行。設定好後會提示重新啟動Fiddler,如果沒有提示我們也重新啟動一下。
好了客戶端安裝完了,接下來配置手機端。
三、手機配置
1、首先使用ipconfig /all命令獲取電腦的ip地址(這裡我的是172.20.1.67):
1.2、也可以直接滑鼠放Online上顯示的ip也好
2、然後在手機wifi高階選項裡填上你的代理ip及埠8888:
最後就是在手機端安裝證書了。
四、安裝證書
證書安裝有兩種方式:
方式(1):
1) 找到先前儲存至桌面的證書,然後拷貝到手機sd目錄:
ps:這裡樓主的手機電腦無法訪問到sd卡很是蛋疼~~~,於是我是通過qq傳送的。。。。
2) 點選設定——>安全——>從裝置儲存空間安裝——>從sd卡中找到證書,點選安裝即可(直接點選是無法安裝的,不信你可以試試)。安裝後會讓你設定鎖屏,然後取個名字就完事了。
方式(2):
手機瀏覽器(手機自帶的瀏覽器)訪問 172.20.1.67:8888 下載 (這裡的IP地址請用步驟三中你自己的IP,如果你填我的看我打不死你)
好了,至此配置方面就完事了,接著就可以開心的攔截https請求了。
ps:如果有攔截還是沒有成功的情況請檢查下上面的配置選項,因為樓主遇到過選項重置的情況,再就是重新安裝一遍證書。
五、攔截https
這時候請求一條https資料,然後在Fiddler中檢視資訊:
如圖可以看見有A、B兩個區域:
A區域主要是顯示當前裝置請求過來的連結資訊:
欄目 | 解釋 |
---|---|
# | |
Result | 請求返回碼 |
Protocol | 協議型別 |
Host | 域名 |
URL | 請求伺服器資源路徑path |
Body | 請求體資料大小 |
“#”代表的是相應的請求型別,這裡在網上找了一張圖,可能會有圖示的變化,但大致能理解:
在A區域選中一條請求對應B區域會顯示一些我們能進行的操作,這裡主要了解下Inspectors、Filters:
(1)Inspectors
分為上下兩個顯示部分,上半部分顯示的是請求頭引數部分,下半部分是響應體部分。對於每一部分,提供了多種不同格式檢視每個請求和響應的內容。JPG 格式使用 ImageView 就可以看到圖片,使用 TextView 可以看到響應的內容。Raw標籤可以檢視原始的符合HTTP標準的請求和響應頭。Auth則可以檢視授權Proxy-Authorization 和 Authorization的相關資訊。JSON能檢視格式化好了的json型別資料。
如果發現Textview顯示亂碼的話,切換到Transformer 取消Chunked Transfer-Encoding勾選,選擇 None即可。
這裡還有一點:如果嫌這個介面顯示不好看,Fiddler也為我們提供了簡化的獨立介面,在A區域中選中一條請求右鍵選擇inspect in New Window… 即可:
(2)Filters
跟著一步步做下來的同學肯定會詫異:為啥我的A區域顯示特別亂,各種亂七八糟的請求都有,而樓主的是那麼的乾淨絲滑~~~。其實這裡就是通過配置Filters的過濾規則如下圖示:
首先選中Use Filters,Hosts裡面有兩個下拉選框,第一個是選擇過濾內網和外網;第二個選擇過濾條件,這裡選擇Show only the following Hosts (只顯示以下允許的域名)。最後點選右側的Actions按鈕Run Filterset now 即可。
好了,以上兩個是我覺得平時用的會比較多的,其他有興趣的朋友可以看看官方文件Fiddler文件-http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/InstallFiddler
原文地址:https://blog.csdn.net/mackkill/article/details/70746702