天天看點

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 勾選如圖: 

Android 使用Fiddler抓取Https請求

中途會彈出安全方面的彈窗直接無視就行,畢竟我們本來幹的就不是什麼正常的事。

3、接着生成證書,還是HTTPS 裡面如上圖,點選右邊的Actions選擇Export Root Certificate to Desktop。意思是導出證書并存至桌面。記住位置一會會用到。如圖: 

Android 使用Fiddler抓取Https請求

4、切換到Connections欄,就在HTTPS旁邊,勾選如圖: 

Android 使用Fiddler抓取Https請求

這裡端口号8888可以自己指定,這裡我們保持預設就行。設定好後會提示重新啟動Fiddler,如果沒有提示我們也重新啟動一下。

好了用戶端安裝完了,接下來配置手機端。

三、手機配置

1、首先使用ipconfig /all指令擷取電腦的ip位址(這裡我的是172.20.1.67): 

Android 使用Fiddler抓取Https請求

1.2、也可以直接滑鼠放Online上顯示的ip也好

Android 使用Fiddler抓取Https請求

2、然後在手機wifi進階選項裡填上你的代理ip及端口8888: 

Android 使用Fiddler抓取Https請求

最後就是在手機端安裝證書了。

四、安裝證書

證書安裝有兩種方式: 

方式(1): 

1) 找到先前儲存至桌面的證書,然後拷貝到手機sd目錄: 

ps:這裡樓主的手機電腦無法通路到sd卡很是蛋疼~~~,于是我是通過qq傳送的。。。。 

Android 使用Fiddler抓取Https請求

2) 點選設定——>安全——>從裝置存儲空間安裝——>從sd卡中找到證書,點選安裝即可(直接點選是無法安裝的,不信你可以試試)。安裝後會讓你設定鎖屏,然後取個名字就完事了。 

Android 使用Fiddler抓取Https請求
Android 使用Fiddler抓取Https請求
Android 使用Fiddler抓取Https請求

方式(2): 

手機浏覽器(手機自帶的浏覽器)通路 172.20.1.67:8888 下載下傳 (這裡的IP位址請用步驟三中你自己的IP,如果你填我的看我打不死你) 

Android 使用Fiddler抓取Https請求

好了,至此配置方面就完事了,接着就可以開心的攔截https請求了。 

ps:如果有攔截還是沒有成功的情況請檢查下上面的配置選項,因為樓主遇到過選項重置的情況,再就是重新安裝一遍證書。

五、攔截https

這時候請求一條https資料,然後在Fiddler中檢視資訊: 

Android 使用Fiddler抓取Https請求

如圖可以看見有A、B兩個區域:

A區域主要是顯示目前裝置請求過來的連結資訊:

欄目 解釋
#
Result 請求傳回碼
Protocol 協定類型
Host 域名
URL 請求伺服器資源路徑path
Body 請求體資料大小

“#”代表的是相應的請求類型,這裡在網上找了一張圖,可能會有圖示的變化,但大緻能了解: 

Android 使用Fiddler抓取Https請求

在A區域選中一條請求對應B區域會顯示一些我們能進行的操作,這裡主要了解下Inspectors、Filters:

(1)Inspectors 

分為上下兩個顯示部分,上半部分顯示的是請求頭參數部分,下半部分是響應體部分。對于每一部分,提供了多種不同格式檢視每個請求和響應的内容。JPG 格式使用 ImageView 就可以看到圖檔,使用 TextView 可以看到響應的内容。Raw标簽可以檢視原始的符合HTTP标準的請求和響應頭。Auth則可以檢視授權Proxy-Authorization 和 Authorization的相關資訊。JSON能檢視格式化好了的json類型資料。 

Android 使用Fiddler抓取Https請求

如果發現Textview顯示亂碼的話,切換到Transformer 取消Chunked Transfer-Encoding勾選,選擇 None即可。

這裡還有一點:如果嫌這個界面顯示不好看,Fiddler也為我們提供了簡化的獨立界面,在A區域中選中一條請求右鍵選擇inspect in New Window… 即可: 

Android 使用Fiddler抓取Https請求

(2)Filters 

跟着一步步做下來的同學肯定會詫異:為啥我的A區域顯示特别亂,各種亂七八糟的請求都有,而樓主的是那麼的幹淨絲滑~~~。其實這裡就是通過配置Filters的過濾規則如下圖示:

Android 使用Fiddler抓取Https請求

首先選中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