如何使用fiddler做整个目录替换

前端开发经常会使用到 fiddler 的 AutoResponse 功能调试线上代码,在AutoResponse Tab页中可以很方便的指定一个本地文件替换服务器上的文件。

最经开发的一个项目,由于服务器部署环境十分复杂,要想在搭建一个本地环境十分困难,很自然的,用上了fiddler的AutoResponse作文件映射,一切都那么美好。由于页面中引入的js文件有几十个,在作文件映射时浪费了很多时间(即使直接修改mydocument/fiddler2/AutoResponder.xml也需要大量的时间),这十分不痛快,这些js在本地的目录结构和服务器上的目录结构完全一样,难道fiddler不能将URL某个目录直接映射到硬盘上的某个目录吗?在网上找了很多资料,没有找到现成的解决方法,看来只有自己用script写一个规则了。

按ctrl+R 或者在菜单上 Rules --> customize rules打开fiddler ScriptEditor.封装了两个方法,分别是整个目录替换和单个文件替换的。(单文件替换用fiddler自带的AutoResponse功能更强大,这里我为了不打开fiddler的AutoResponse功能就自己写了一个方法来满足我简单的需求)
在文件最后添加以下代码:
PLAIN TEXT
JAVASCRIPT:

/************************* custom rules *************************/
/**
* 按目录替换
*
* @param oSession {Session} Fiddler Session Object
* @param domain {String} 需要替换的为本地文件的URL前缀(以斜杠结束)
* @param folder {String} 本地文件目录的物理路径(两个反斜杠表示一个反斜杠,以反斜杠结束)
*/
static function AutoResponseFolder ( oSession: Session, domain:String, folder:String ) {
// 获取当前对话的完整URL
var fullUrl:String = oSession. fullUrl ;
if ( fullUrl. StartsWith ( domain ) ) {
var localPath:String = fullUrl. replace (domain, folder ) ;

//set back color
oSession [ 'ui-backcolor' ] = 'seashell' ;

//set delay
//oSession['response-trickle-delay'] = 2000;

//replace server file
oSession [ 'x-replywithfile' ] = localPath;

//write log
//FiddlerObject.log(localPath);

}
}

/**
* 单文件替换
*
* @param oSession {Session} Fiddler Session Object
* @param found {String} 需要替换的URL包含的关键字
* @param replacement {String} 本地文件目录的物理路径(两个反斜杠表示一个反斜杠)
*/
static function AutoResponse ( oSession: Session, found:String, replacement:String ) {
if ( oSession. uriContains ( found ) ) {
//set back color
oSession [ 'ui-backcolor' ] = 'lightgreen' ;

//set color
oSession [ 'ui-color' ] = 'black' ;

//replace server file
oSession [ 'x-replywithfile' ] = replacement;

//write log
//FiddlerObject.log(localPath);
}
}

/**
* 添加一个我自己的规则,
* 映射了两个文件test04.html和core.js
* 映射了一个目录news/
*/
static function AddRules ( oSession: Session ) {
// 路径和替换规则根据各项目实际情况替换
var webroot:String = 'c: \\ test \\ ' ;

AutoResponse ( oSession, 'search_noitem/?create=1', webroot + 'aaa \\ test04.html' ) ;
AutoResponse ( oSession, 'editor/core.js' , webroot + 'bbb \\ core.js' ) ;

// 需要替换的为本地文件的URL前缀(以斜杠结束)
var domain:String = 'http://local.test.com/' ;
// 本地文件目录的物理路径(两个反斜杠表示一个反斜杠,以反斜杠结束)
var folder:String = webroot + 'news \\ ' ;

AutoResponseFolder ( oSession, domain, folder ) ;
}
在OnBeforeRequest函数中调用AddRules,让fiddler在发起请求之前使用刚才添加的规则。
ctrl+S保存,无需重启fiddler,直接刷新页面就能看到规则已经生效了,为了醒目,我将目录映射的请求的背景色设置成红色,将单文件映射请求的背景设置成了绿色(fiddler AutoResponse代理的请求默认背景是灰色)。

(0)

相关推荐

  • excel表格中怎么是做导航目录和返回按钮?

    如果一个工作簿中有多个工作表,一般需要一个总表或登陆界面来设置超链接方便跳转,如下图所示效果.本例教大家如何制作一个登陆界面和返回登陆界面的超链接. 1.举例来说,工作不中包含一个“登陆界面”表和若干 ...

  • excel如何给工作表做目录并实现超链接

    在工作中,往往一个工作簿里包含很多个工作表,要查找的时候只能在下面一个一个找,那么有快捷的方法实现快速查找呢,其实我们可以给你的工作表做一个目录,这样直接在目录里查找就方便多了 ,而且还可以加个超链接 ...

  • ppt目录怎么做?

    一个完整的PPT文档,在文档的前面就需要加上目录,但由于PPT与Word跟excel不完全一样,所以目录的制作方法也存在着差异,那么,ppt目录怎么做?有没有什么好的方法? 操作方法 01 常规的方法 ...

  • WPS文字目录制作有哪些方法?

    平时工作接触文档排版比较多,说到文档排版今天就先发一个做WPS目录的基础教程. 第一种:常规排法方法:不多说就是打字,然后打省略号,后面缀页码,然后强制对齐页码. 缺点:页码不容易对齐,省略号不好看且 ...

  • 怎么使用抓包工具fiddler

    使用Fiddler做抓包分析 http://blog.csdn.net/ohmygirl/article/details/17849983 图文教程,请参考,按步骤进行操作

  • Word"替换"如何批量改排版格式

    从网上下载的一本<红楼梦>,每个回目只有"上卷 第XX回"标注了加粗,看起来很不醒目.下面我们通过格式替换的方式,一键将所有"上卷 第XX回"加大字 ...

  • WPS文字目录制作的三种方法

    WPS文字目录制作的三种方法 平时工作接触文档排版比较多,说到文档排版今天就先发一个做WPS目录的基础教程. 第一种:常规排法 方法:不多说就是打字,然后打省略号,后面缀页码,然后强制对齐页码. 缺点 ...

  • wps文字目录格式怎么设置生成

    wps文字设置自动生成目录格式的方法 步骤一:首先,打开你的文档. 如图,我的毕业论文已经有自动目录生成的,待会删掉,再重新弄一遍. 步骤二:引用--看到 目录级别 (先熟悉环境) 步骤三:然后去 各 ...

  • 在excel表格中怎么制作目录表?

    我们在平时的工作中,可能在一个文件夹里边有很多的文件,我们要找出来需要的文件是不是感觉很费劲呢,我要是做个目录出来是不是就方便很多,下面我来看下,制作目录的方法 方法1 1.我们打开要制作目录的文件夹 ...