Fiddler (二) Script 用法
通过前一篇博客 【Fiddler教程】, 我们了解了Fiddler的基本用法, 现在我们来看看Fiddler的高级用法. Fiddler Script。 Fiddler中的script 可以让我们自动修改Http request和Response 的内容。 而不用手动地去下"断点"来修改http Request或Response中的值。
Fiddler的作者
Fiddler 的作者是 Eric Lawrence 是个大师级的人物, 目前在微软总部西雅图工作。 他的博客是: http://www.ericlawrence.com/Eric/
博客中能看到他的简历,以及一些生活照.
遇到问题如何向Fiddler的作者请教
Eric Lawrence 在Google 论坛中建了一个Fiddler 的讨论组, 地址是:https://groups.google.com/forum/?fromgroups#!forum/httpfiddler
在这里Fiddler的使用者如果遇到任何问题,都可以这论坛里直接问Eric Law. Eric Law一般都会很快答复你。 在问问题之前,请搜索下。因为你的问题很可能别人早就问过了。
关于Fiddler Script
Fiddler 包含了一个脚本文件可以自动修改Http Request 和Response.这样我们就不需要手动地下"断点"去修改了,
实际上它是一个脚本文件CustomRules.js
位于: C:\Documents and Settings\[your user]\My Documents\Fiddler2\Scripts\CustomRules.js 下
你也可以在Fiddler 中打开CustomRules.js 文件, 启动Fiddler, 点击菜单Rules->Customize Rules...
Fiddler Script 的官方帮助文档必须认真阅读, 地址是:http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp
Fiddler Script 是用JScript.NET语言写的
我从来没听说过JScript.NET语言,可能是JScript的升级版吧。 写起来有点类似C#
安装Fiddler Script Editor
你可以直接用notepadCustomRules.js文件,
强烈推荐下载 Fiddler Script Editor 地址是: http://www.fiddler2.com/fiddler/fse.asp
Fiddler Script Editor 提供了语法高亮,以及智能提示的功能, 如下图:
CustomRules.js中的主要方法
// 在这个方法中修改Request的内容, 我们用得最多,
static function OnBeforeRequest(oSession: Session)
// 在这个方法中修改Response的内容,
static function OnBeforeResponse(oSession: Session)
// 在个方法中包含Fiddler 命令。 在Fiddler界面中左下方的QuickExec Box
static function OnExecAction(sParams: String[])
给Fiddler添加菜单
Fiddler可以模拟各种浏览器,你可以通过点击菜单 Rules->User-Agents
不过好像没有Iphone 4S safari 的, 我们现在添加一个。 先查询在网上Iphone 4S safari 的user-Agents, 然后添加如下代码代码就可以了
- RulesStringValue(, "Iphone 4S safari", "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7")
保存脚本, 重启Fiddler就可以看到菜单中多了个Iphone 4s
你可以把你常用的操作,都定义成一个menu,
修改Session在Fiddler的显示样式
我们可以控制Session在Fiddler中显示的样式, 具体文档是: http://www.fiddler2.com/Fiddler/dev/SessionFlags.asp
把这段脚本放在OnBeforeRequest(oSession: Session) 方法下,并且点击"Save script", 这样所有的cnblogs的会话都会显示红色.
- if (oSession.HostnameIs("www.cnblogs.com")) {
oSession["ui-color"] = "red";
}
运行效果如
如何在Fiddler Script中修改Cookie
cookie其实就是request 中的一个header.
// 删除所有的cookie
oSession.oRequest.headers.Remove("Cookie");
// 新建cookie
oSession.oRequest.headers.Add("Cookie", "username=testname;testpassword=P@ssword1");
注意: Fiddler script不能直接删除或者编辑单独的一个cookie, 你需要用replace方法或者正则表达式的方法去操作cookie的string

- static function OnBeforeRequest(oSession: Session)
- {
- if (oSession.HostnameIs('www.example.com') &&
- oSession.uriContains('pagewithCookie') &&
- oSession.oRequest.headers.Contains("Cookie"))
- {
- var sCookie = oSession.oRequest["Cookie"];
- // 用replace方法或者正则表达式的方法去操作cookie的string
- sCookie = sCookie.Replace("cookieName=", "ignoreme=");
- oSession.oRequest["Cookie"] = sCookie;
- }

如何在Fiddler Script中修改Request 中的body
方法一:

- static function OnBeforeRequest(oSession: Session)
- {
- if(oSession.uriContains("http://www.cnblogs.com/TankXiao/"))
- {
- // 获取Request 中的body字符串
- var strBody=oSession.GetRequestBodyAsString();
- // 用正则表达式或者replace方法去修改string
- strBody=strBody.replace("","");
- // 弹个对话框检查下修改后的body
FiddlerObject.alert(strBody);- // 将修改后的body,重新写回Request中
- oSession.utilSetRequestBody(strBody);
- }
- }

方法二: 提供了一个非常简单的方法,可以直接替换body中的数据
oSession.utilReplaceInRequest("1111", "2222");
Fiddler (二) Script 用法的更多相关文章
- Fiddler的script用法
一.关于Fiddler Script Fiddler Script 是用JScript.NET语言写的.Fiddler 包含了一个脚本文件可以自动修改Http Request 和Response.这样 ...
- sqlalchemy(二)高级用法
sqlalchemy(二)高级用法 本文将介绍sqlalchemy的高级用法. 外键以及relationship 首先创建数据库,在这里一个user对应多个address,因此需要在address上增 ...
- WIN 下的超动态菜单(二)用法
WIN 下的超动态菜单(一)简介 WIN 下的超动态菜单(二)用法 WIN 下的超动态菜单(三)代码 作者:黄山松,发表于博客园:http://www.cnblogs.com/tomview/ ...
- class的二般用法
一般来说,class就是给一堆元素添加样式的,但是还有二般的用法,就是用来作为一个开关,来切换他的子孙元素的样式.举个例子: <ul> <li><span>1< ...
- Android SQLite (二) 基本用法
在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面.本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的. 一 ...
- 二. Socket用法
C/S通信架构中,客户端要主动与服务端建立连接,这个链接就是Socket套接字.服务端收到连接请求后,也会开启Socket记录与客户端的链接.C/S两端都要建路Socket才能正常收发数据. 一.构造 ...
- 使用jemeter手工编写注册、登陆脚本 运用 fiddler (二)
接着上一篇讲 我们需要添加关联来获取我们想要的动态值 如果做过自动化测试的人都知道 不管是注册或者登陆是时候都会有一个 类似于动态码的一个东西 只有这个东西验证成功 我们才能注册 或者 登陆 那 ...
- sqlalchemy(二)高级用法 2
转自:https://www.cnblogs.com/coder2012/p/4746941.html 外键以及relationship 首先创建数据库,在这里一个user对应多个address,因此 ...
- Fiddler(二)
该博客基于以下博客网站里的内容进行提取,实验,和补充.让我们开始 https://www.cnblogs.com/yyhh/p/5140852.html AutoResponder 允许拦截指定规则的 ...
随机推荐
- salesforce 零基础学习(三十)工具篇:Debug Log小工具
开发中查看log日志是必不可少的,salesforce自带的效果显示效果不佳,大概显示效果如下所示: chrome商城提供了apex debug log良好的插件,使debug log信息更好显示.假 ...
- vuejs - the component is a fragment instance
vuejs - the component is a fragment instance http://vuejs.org/guide/components.html#Fragment-Instanc ...
- Chrome清除dns缓存
Chrome清除dns缓存 为了加快访问速度,Google Chrome浏览器采用了预提DNS记录,在本地建立DNS缓存的方法,加快网站的连接速度.你在谷歌Chrome浏览器的地址栏中输入about: ...
- Android入门(九)文件存储与SharedPreferences存储
原文链接:http://www.orlion.ga/578/ Android系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储.SharedPreference存储以及数据库存储.当然, ...
- 【目录】C#搭建足球赛事资料库与预测平台与彩票数据分析目录
本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.彩票数据分析与预测 6.智彩足球技术研究团队成员介绍 5.关于组建“智彩足球技术研究团队”的说明 4.为什么选择玩足球彩票以及玩彩票的心 ...
- php分享(三十六)mysql中关联表更新
一:关联不同的表更新 1: 通过where关联更新 update student s, city c set s.province_name = c.province_name, s.city_nam ...
- 基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理
在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能给系统用户更好的操作体验,也提高了用户录入数据的效率.我在较早时期的EasyUI的Web框架上, ...
- SQL查询~ 存在一个表而不在另一个表中的数据
A.B两表,找出ID字段中,存在A表,但是不存在B表的数据.A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引. 方法一 使用 not in ,容易理解,效率低 ~执 ...
- 机器学习&数据挖掘笔记_20(PGM练习四:图模型的精确推理)
前言: 这次实验完成的是图模型的精确推理.exact inference分为2种,求边缘概率和求MAP,分别对应sum-product和max-sum算法.这次实验涉及到的知识点很多,不仅需要熟悉图模 ...
- 为网格布局图片打造的超炫 CSS 加载动画
今天,我想与大家分享一些专门为网格布局的图像制作的很酷的 CSS 加载动画效果.您可以把这些效果用在你的作品集,博客或任何你想要的网页中.设置很简单.我们使用了下面这些工具库来实现这个效果: Norm ...