Fiddler對手機或模擬器的網路請求抓包
阿新 • • 發佈:2019-01-27
看了多篇部落格,受益匪淺!在這裡做一個總結。
如題,這裡把問題做一個大的劃分:
- Fiddler對Android手機網路請求抓包
- Fiddler對Android模擬器網路請求抓包
- Fiddler對Https請求抓包
- Fiddler對使用OkHttp網路框架的app請求抓包
問題 1:
問題 2:
網上查找了許多,但是針對的模擬器版本比較老或者使用的是Genymotion,我用的是Android Studio自帶的模擬器,版本是23,發現與那些教程講的有些出入。如果你遇到的問題和我一樣,可以看下這篇部落格。
問題 3:
注意這篇文章第七步,作者匯出了證書(.cer檔案)並在安裝在Android模擬器,這樣Fiddler就可以抓取Android模擬器中所有App的網路請求了。
如果你不想安裝證書在模擬器,你只是想要Fiddler抓取模擬器中指定App裡面的請求,你也可以在執行網路請求的時候將證書資訊提交給伺服器。如何提交?
問題 4:
我想去了解Fiddler的目的是想更便捷、更直觀、更具體的看到APP對伺服器的請求以及響應資料,即便okhttp提供了日誌列印。現在我想解決這樣一個問題,我希望Fiddler能監聽並抓取我本機模擬器中指定的APP所發出的請求。如果你的專案使用的是OkHttp網路框架,只需要設定一下代理就可以了:
client = new OkHttpClient.Builder()
.proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.168.1.134", 8888)))
.sslSocketFactory(sslSocketFactory, trustManager)
.build();
IP 為 本機IP地址,可在DOS裡面通過ipconfig拿到,埠號 8888,由PC來代理請求,PC又會經過Fiddler的。為何這樣設定?
這樣,Fiddler就可以抓取該APP中所有請求了。
由於預設情況下Fiddler會抓取很多網路請求,如果你只想測試你App中包含某個Host下的請求,你可以