項目的表現(xiàn)層使用MVC+Extjs。在開發(fā)過程中,一旦頁面顯示不正常,第一個需要排查的總是“Action是否輸出了正確的Json?”。由于開發(fā)人員會日復(fù)一日地頻繁進行這個操作,所以我們的目標是,要找到一種方法,可以不用耗費額外的精力隨時查看Json輸出
“不用耗費額外的精力”指的是:當需要查看Json輸出時,只要轉(zhuǎn)轉(zhuǎn)眼球(可能至少還需要點兩下鼠標,恐怕)就能很快找到想看的結(jié)果。
查看Json輸出的方法很多,我們所能找的最接近這個目標的方案是“Fiddler2+JsonViewer插件+自定義Fiddler2過濾條件”。想要查看Json輸出時,只要先將Fiddler運行起來,然后在瀏覽器里正常操作Web頁面,就可以在Fiddler里面看到截獲的Json輸出了,效果如下圖所示。
安裝Fiddler2+JsonViewer插件
Fiddler2是一款老牌Web調(diào)試工具。下載、安裝之后,通過點擊“開始|程序|Fiddler2”或點擊IE的菜單“工具|Fiddler2”將其運行起來后,它會自動把自己注冊成IE的代理服務(wù)器,從而截獲任何經(jīng)過IE的請求/應(yīng)答;當關(guān)閉它時,它又會自動把代理服務(wù)器配置取消(當年使用Fiddler1的時候,還得自己添加代理服務(wù)器配置,很麻煩的說)。
JsonViewer是一款查看Json對象的小工具。解壓后,可以看到3個子目錄:
- JsonView:可獨立運行版。
- Visualizer:VS2005插件。
- Fiddler:Fiddler2插件。
我們接下來要安裝JsonViewer的Fiddler2插件。方法是,將Fiddler目錄中的所有文件復(fù)制到“Fiddler2的安裝目錄Inspectors”。然后修改“Fiddler2的安裝目錄fiddler.exe.config”,如下圖所示,粗體部分是需要我們添加的配置信息。
注意 IE7 和 .NET Framework 被硬編碼成只要是對localhost的請求,就不通過代理服務(wù)器。所以像“http://localhost:8000/Default.aspx”這樣的請求不會被Fiddler2截獲。解決方法是:1) 將“localhost”替換成“localhost.”,如“http://localhost.:8000/Default.aspx”;2) 將“localhost”替換成本機IP地址,如“http://172.16.75.78:8000/Default.aspx”。
現(xiàn)在,讓我們把Fiddler2運行起來,再操作一下頁面,就可以在Fiddler2窗體左側(cè)的“Web Sessions”列表里看到一大堆請求/應(yīng)答。點擊返回Json的那一條,再點擊進入右側(cè)的“Inspectors”、“Json”Tab頁,就可以了。只是,F(xiàn)iddler2默認會把所有經(jīng)過IE的任何請求/應(yīng)答全都顯示出來,這樣一來,“Web Sessions”列表里的東東就嫌太多了,能不能把與Json不相干的東東全部過濾掉呢?這個并不難,只要在Fiddler2的“CustomRules”里面增加幾行代碼就可以了。
自定義過濾條件
點擊Fiddler2的菜單“Rules|Customize Rules...”,會自動由記事本打開可添加自定義規(guī)則的代碼文件。
在第81行增加如下代碼,目的是在Fiddler2的Rules菜單里增加一個“只顯示Json”的菜單項:
在OnBeforeResponse事件里增加如下代碼,意思是如果“Rules|只顯示Json”菜單項被選中了,就過濾掉所有Content-Type!="application/json; charset=utf-8"的應(yīng)答。
文章來自:http://www.cnblogs.com/1-2-3/