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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • deepfakes怎么用_黑科技▍如何使用 Deepfakes 给主播换脸?教程来了

    deepfakes怎么用_黑科技▍如何使用 Deepfakes 给主播换脸?教程来了下面放教程:1.获取deepfakes工具包gitclonehttps://github.com/deepfakes/faceswap.git2.补齐依赖包:pipinstalltqdmpipinstallcv2pipinstallopencv-contrib-pythonpipinstalldlibpipinstallkeraspipinstalltensorfl…

    2022年5月26日
  • native2ascii 用法_native to

    native2ascii 用法_native toDK native2ascii工具用法(2010-01-2814:25:30)转载标签:it分类:JAVA地带背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码。原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码…

    2022年9月11日
  • 自我介绍

    自我介绍

    2021年7月31日
  • django urls_php通过url传递参数

    django urls_php通过url传递参数前言为什么我们url需要命名呢?url命名的作用是什么?我们先来看一个案例案例我们先在一个Django项目中,创建2个App,前台front和后台cms,然后在各自app下创建urls.py文件

    2022年8月7日
  • pandas用法-全网最详细教程

    pandas用法-全网最详细教程一、生成数据表1、首先导入pandas库,一般都会用到numpy库,所以我们先导入备用:importnumpyasnpimportpandasaspd2、导入CSV或者xlsx文件:df=pd.DataFrame(pd.read_csv(‘name.csv’,header=1))df=pd.DataFrame(pd.read_excel(‘nam…

    2022年6月12日
  • client profile_clienttop

    client profile_clienttopscreenX:鼠标在显示屏幕上的坐标。clientX:鼠标在页面显示区域的坐标。注:以上两个都是各浏览器通用的。pageX:FF特有,鼠标在页面上的位置,从页面左上角开始定位,这个可以很方便在整个页面上进行定位,IE没有直接替换的属性。layerX:FF特有,鼠标相对于“触发事件的元素的层级关系中离该元素最近的,设置了position的父元素”的边界的位置,从border的左…

    2022年10月29日

发表回复

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

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