1. 程式人生 > >Fiddler對手機或模擬器的網路請求抓包

Fiddler對手機或模擬器的網路請求抓包

看了多篇部落格,受益匪淺!在這裡做一個總結。

如題,這裡把問題做一個大的劃分:

  1. Fiddler對Android手機網路請求抓包
  2. Fiddler對Android模擬器網路請求抓包
  3. Fiddler對Https請求抓包
  4. 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下的請求,你可以