文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>查看Json输出的*最方便*的方法

查看Json输出的*最方便*的方法

时间:2010-11-16  来源:痕迹

      Fiddler2是一款老牌Web调试工具。下载、安装之后,通过点击“开始|程序|Fiddler2”或点击IE的菜单“工具|Fiddler2”将其运行起来后,它会自动把自己注册成IE的代理服务器,从而截获任何经过IE的请求/应答;当关闭它时,它又会自动把代理服务器配置取消(当年使用Fiddler1的时候,还得自己添加代理服务器配置,很麻烦的说)。
      JsonViewer是一款查看Json对象的小工具。解压后,可以看到3个子目录:
            - JsonView:可独立运行版。
            - Visualizer:VS2005插件。
            - Fiddler:Fiddler2插件。
      我们接下来要安装JsonViewer的Fiddler2插件。方法是,将Fiddler目录中的所有文件复制到“Fiddler2的安装目录\Inspectors\”。然后修改“Fiddler2的安装目录\fiddler.exe.config”,如下图所示,粗体部分是需要我们添加的配置信息。


<configuration> 
  <runtime> 
    <generatePublisherEvidence enabled="false"/> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="Inspectors" />
    </assemblyBinding>
  </runtime> 
</configuration> 
注意 IE7 和 .NET Framework 被硬编码成只要是对localhost的请求,就不通过代理服务器。所以像“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”。

      现在,让我们把Fiddler2运行起来,再操作一下页面,就可以在Fiddler2窗体左侧的“Web Sessions”列表里看到一大堆请求/应答。点击返回Json的那一条,再点击进入右侧的“Inspectors”、“Json”Tab页,就可以了。只是,Fiddler2默认会把所有经过IE的任何请求/应答全都显示出来,这样一来,“Web Sessions”列表里的东东就嫌太多了,能不能把与Json不相干的东东全部过滤掉呢?这个并不难,只要在Fiddler2的“CustomRules”里面增加几行代码就可以了。

 

自定义过滤条件

      点击Fiddler2的菜单“Rules|Customize Rules...”,会自动由记事本打开可添加自定义规则的代码文件。
      在第81行增加如下代码,目的是在Fiddler2的Rules菜单里增加一个“只显示Json”的菜单项:

// jcl20091121
public static RulesOption("只显示 &Json")
var m_ShowJsonOnly: boolean = false;

      在OnBeforeResponse事件里增加如下代码,意思是如果“Rules|只显示Json”菜单项被选中了,就过滤掉所有Content-Type!="application/json; charset=utf-8"的应答。

// jcl:2009-11-21
if(m_ShowJsonOnly) {
    //MessageBox.Show(oSession.oResponse.headers.Item("Content-Type").ToString());
    if (!oSession.oResponse.headers.ExistsAndContains("Content-Type", "application/json; charset=utf-8")) {
        oSession["ui-hide"] = "hide"; // String value not important
    }
}

      所有源码在此:

自定义规则


      现在“Web Sessions”列表已经清爽多了,可是,如果我们想忙里偷闲,去博客园首页逛逛,就会发现“Web Sessions”列表里面多了几条博客园首页的Json输出,这是因为Fiddler2默认会截获所有经由IE的请求/应答。能不能让它只显示本机的请求/应答呢?这个只需要配置一下Fiddler2的Filter选项就可以了,如下图所示。



参考

让Fiddler调试localhost和127.0.0.1
FiddlerScript CookBook

2009-11-27 更新

  有时候我们除了Json,还想看看表单数据啥的,这种时候就并不想“只显示Json”,所以我又新增了一个菜单项“隐藏所有非功能性请求(css js image 304)”,如果勾选了这个菜单,就会把js、css、所有图片和304请求全部过滤掉。这是新版的CustomRules.js。

全文转自: 在北京的湖南人
相关阅读 更多 +
排行榜 更多 +
枪炮战场真实模拟手游 v2024.11.167 安卓版

枪炮战场真实模拟手游 v2024.11.167 安卓版

飞行射击 下载
枪炮战场真实模拟手游 v2024.11.167 安卓版

枪炮战场真实模拟手游 v2024.11.167 安卓版

飞行射击 下载
枪炮战场真实模拟手游 v2024.11.167 安卓版

枪炮战场真实模拟手游 v2024.11.167 安卓版

飞行射击 下载