Fiddler Script 用法

Fiddler Script 用法

通过前一篇博客 【小坦克: Fiddler教程】,我们了解了Fiddler的基本用法,  现在我们来看看Fiddler的高级用法. Fiddler Script。   Fiddler中的script 可以让我们自动修改Http request和Response 的内容。  而不用手动地去下”断点”来修改http Request或Response中的值。

 

阅读目录

  1. Fiddler的作者
  2. 如何向Fiddler的作者请教
  3. 关于Fiddler Script 和Jscript.NET
  4. Fiddler Script 是用JScript.NET语言写的
  5. 安装Fiddler Script Editor
  6. 给Fiddler添加菜单
  7. 修改Session在Fiddler的显示样式
  8. 如何在Fiddler Script中修改Cookie
  9. 如何在Fiddler Script中修改Request 中的body

 

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 提供了语法高亮,以及智能提示的功能, 如下图:

Fiddler Script 用法

 

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(23, "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

Fiddler Script 用法

 

你可以把你常用的操作,都定义成一个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 用法

 

 

如何在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("1111","2222");
        // 弹个对话框检查下修改后的body               
FiddlerObject.alert(strBody);
// 将修改后的body,重新写回Request中 oSession.utilSetRequestBody(strBody); } }
复制代码

 

方法二:  提供了一个非常简单的方法,可以直接替换body中的数据

 oSession.utilReplaceInRequest(“1111”, “2222”);

转载于:https://www.cnblogs.com/syf/archive/2013/01/12/2857278.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110231.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nessus安装使用教程_kali linux全部功能教程

    nessus安装使用教程_kali linux全部功能教程一、Nessus介绍Nessus是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus作为扫描该机构电脑系统的软件。提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus专业版非免费的;家庭版是免费的,但单次任务只可以扫16个IP,这里注册的是家庭版,注册成功后会给邮箱发送一个激活码。二、安装下载家庭版https://www…

    2022年10月18日
    7
  • 『机器学习笔记 』GBDT原理-Gradient Boosting Decision Tree

    『机器学习笔记 』GBDT原理-Gradient Boosting Decision Tree1.背景1.1GradientBoosting1.2提升树-boostingtree回归问题提升树算法2GradientBoostingDecisionTree2.1函数空间的数值优化2.2算法Shrinkage总结附录参考资料相似算法:1.背景决策树是一种基本的分类与回归方法。决策树模型具有分类速度快,模型…

    2022年10月5日
    3
  • RabbitMQ消费消息坑:failed to convert serialized Message content

    RabbitMQ消费消息坑:failed to convert serialized Message content文章目录一、问题描述二、解决方案方案一:共同使用一个对象方案二:消息JSON序列化(推荐)2.1.生产者发送消息JSON序列化2.2.消费者接收消息JSON反序列化三、测试一、问题描述2022-05-0314:01:40.630WARN16876—[ntContainer#0-2]s.a.r.l.ConditionalRejectingErrorHandler:ExecutionofRabbitmessagelistenerfailed.org.springfram

    2022年6月16日
    633
  • 嵌入式C语言的小细节,excel的几个函数[通俗易懂]

    嵌入式C语言的小细节,excel的几个函数[通俗易懂]记录一下笔记嵌入式C语言有时候无法使用Static关键字嵌入式C语言中如果定义了变量没有使用可能报错嵌入式C语言中如果定义了无符号类型的变量最好别去和0比较,可能会报错嵌入式C语言的技巧if,else的嵌套使用得好可以加快速度excel的使用=‘sheet’!A1跨表传递数据很有用excel的使用中,=count(obj1:obj2)是一个很厉害的函数,作用是统计obj1到obj2的数字的个数;…

    2022年10月21日
    3
  • 批处理for循环命令初步学习

    批处理for循环命令初步学习1基本格式DOS批处理for循环语句的基本格式是,for/参数%变量in(集)do命令参数:FOR分四种参数DLRF;变量:变量名是由单个字母组成且区分大小写(原帮助是这么说的,实际运用中用单个数字作为变量名试过证明也可行),如%B和%b代表的是不同的变量;FOR命令会在每次循环中,把in(集)中读取到的值赋于这个变量,以便其后的命令中引用;集:由系列文件、字符串或由命令产生的内容形成的集合(当然可用通配符*?,还可引用环…

    2022年10月12日
    3
  • 如何修改mysql占用的端口号_修改mysql端口号(mysql的端口号)[通俗易懂]

    如何修改mysql占用的端口号_修改mysql端口号(mysql的端口号)[通俗易懂]修改mysql端口号(mysql的端口号)2020-05-0722:12:00共10个回答如何查看mysql默认端口号和修改端口号登录mysql,使用命令showglobalvariableslike’port’;查看端口号修改端口在配置文件my.ini,修改后重新启动.[mysqld]port=3506如何修改修改mysql默认端口号3306在配置文件my.ini中找到port修改port的值…

    2022年10月3日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号