作為一名測試或開發人員,如果你的Fiddler突然不能抓取請求了,想必一定是非常苦惱。某人最近遭遇了 Web端瀏覽器 無法抓取Https請求,手機端瀏覽器無法抓取全部請求等種種問題,再此總結下,希望能幫助有問題的童鞋。
如果你的Fiddler 突然不能抓取請求了,可以從以下幾個角度試試看:
Web瀏覽器的請求,Fiddler不能抓取的解決方法:
1、是否有新安裝代理相關的插件?
如有安裝管理代理的插件,插件會屏蔽Fiddler的設置,此時把插件禁掉、或者設置默認的代理就可以解決了。
2、Chrome瀏覽器訪問任何一個Https的鏈接 都提示不安全,每個鏈接都要反復點擊信任並前往不安全的鏈接,如下圖所示。

雖然關閉Fiddler可以解決這個問題,但顯然不是我們想要的結果。
這種情況的發生是因為Chrome 不信任 Fiddler的根證書,需要去更換證書。
Fiddler直接提供了不同攔截證書,這個時候的選擇Tools——Options——Https——點擊藍色的證書鏈接,進行更換。

更換完成后還需重置Fiddler的證書。具體的位置在 Tools——Options——Https——Actions——Reset All Certificates
如果你的證書被誤刪,導致瀏覽器無法訪問https鏈接,可以直接Reset一下。

這里 訪問 Https的同學也可以對...from all processes 這個選項注意,如果僅選擇了從客戶端抓取,在Web瀏覽器上同樣不會被捕捉請求,from all processees 就是獲取到全部請求的意思,可默認選擇。
手機端瀏覽器的請求,Fiddler不能抓取的解決方法:
1、Fiddler是否打開 客戶端請求抓取?
Tools——Options——Connections,里面的Allow remote computers to connect 一定要勾選。修改后,注意需要重新打開Fiddler。

2、Fiddler 是否被准許監聽8888端口?
CMD命令行里 執行 netstat -anop tcp 命令,可以查看 Fiddler是否正常監聽默認的8888端口,如果服務沒有開啟,同樣在Tools——Options——Connections里,修改端口號,如上圖的顯示。修改后 仍然要記得關閉重新打開Fiddler才生效。
當端口過多時,可根據netstat -ano|findstr "端口號",查看Fiddler是否成功占用當前端口號。

我們可以從上圖中發現端口8889被6900的進程所占用,那tasklist|findstr "6900" 就可以定位到 當前占用這個端口號的進程就是Fiddler。

3、防火牆被攔
防火牆或者一些360類似的殺毒軟件,我們可以在防火牆下設置為fiddler通過。

iOS 10.3 Fiddler突然不能抓取Https的鏈接的解決方法:
設置——通用——關於本機——證書信任設置
iOS 10.3以后,需要手動對證書進行信任,否則無法獲取https的請求,不知道的很坑有木有。

Fiddler 攔截證書:
http://www.telerik.com/blogs/understanding-fiddler-certificate-generators
Chrome 官網回答不支持Fiddler的解決方案:
https://textslashplain.com/2017/03/10/chrome-deprecates-subject-cn-matching/
Fiddler 抓取鏈接配置的基本教程:
https://i.wanz.im/2013/04/30/debugging_http_request_with_fiddler/
作者:紫Qi
鏈接:https://www.jianshu.com/p/ead1e301d194
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。