有這麼一種應用場景: 你是做前端或APP開發的,需要調用服務端提供的介面,介面只能在公司內網訪問;在公司外就無法調試代碼了。 想在公司外訪問怎麼辦呢? 如果在公司的時候將所有介面的響應內容都保存起來,就可以脫離服務端在本地模擬出來一個服務端環境,從而就可以不受網路環境的限制愉快的調試代碼了。 ...
有這麼一種應用場景:
你是做前端或APP開發的,需要調用服務端提供的介面,介面只能在公司內網訪問;在公司外就無法調試代碼了。
想在公司外訪問怎麼辦呢?
如果在公司的時候將所有介面的響應內容都保存起來,就可以脫離服務端在本地模擬出來一個服務端環境,從而就可以不受網路環境的限制愉快的調試代碼了。
實現原理如下:
先用Fiddler抓包,把你需要保存的介面(不僅限介面,html,css,js,image均可)都抓一遍。
在Fiddler中依次單擊如下菜單 File -> Save -> All Sessions,將抓到的所有請求保存為一個saz文件。
saz文件中即包含了請求/響應的所有信息,是一個zip格式的文件,在raw目錄會有如下命名的文件,例如:
001_c.txt、001_s.txt、001_m.xml
001表示請求序號,例如:001,002,003
001_c.txt 是HTTP請求的完整信息(包含請求頭)
001_s.txt 是HTTP響應的完整信息(包含響應頭)
001_m.xml 是Fiddler Session的相關信息(本例中用不到)
有了請求/響應信息,我們就可以寫一個Fiddler插件把saz里能匹配到的請求都用對應的響應替換,從而實現離線瀏覽功能。
代碼比較簡單我就不貼了,後面有完整代碼下載。
說下插件用法:
- 把saz解壓到一個目錄,在文本框處粘貼目錄路徑,多個saz路徑用換行分隔。其實這裡可以做成直接粘貼saz文件路徑,由插件自動解壓更方便;我懶,沒做^_^
- 單擊“保存”
- 現在再訪問之前抓過的地址,就不走伺服器了。
源碼下載:單擊下載