在FiddlerScript中添加延迟

时间:2015-07-23 00:21:33

标签: fiddler

我想在Fiddler拦截的所有会话中为响应添加统一延迟。 "response-trickle-delay"的使用是不可接受的,因为它实际上并没有引入统一的延迟,而是延迟每个1KB的传输(模拟低带宽,而不是高延迟)。

我能找到的唯一参考是here,它使用了以下暴行(请勿使用!):

static function wait(msecs) 
{ 
var start = new Date().getTime(); 
var cur = start; 
while(cur – start < msecs) 
{ 
cur = new Date().getTime(); 
} 
}

wait(5000);插入了OnBeforeResponse

正如预期的那样,它锁定了我的电脑并开始使CPU过热,我不得不退出Fiddler。

我正在寻找一些东西:

  • 不那么愚蠢,
  • 尽可能简单。

看起来FiddlerScript是用JScript.NET编写的,从我收集的内容中有一个setTimeout()函数,但是我无法调用它(我不知道JavaScript或者.NET根本没有。这是我的OnBeforeResponse

static function OnBeforeResponse(oSession: Session) {
    if (m_Hide304s && oSession.responseCode == 304) {
        oSession["ui-hide"] = "true";
    }
    setTimeout(function(){},1000);
}

它只是在setTimeout行给出语法错误。可以从FiddlerScript中使用setTimeout()来引入统一的延迟吗?

1 个答案:

答案 0 :(得分:4)

FiddlerScript使用JScript.NET,它可以引用.NET程序集,System.Threading包含Sleep

  1. 在工具&gt;提琴手选项&gt;扩展程序,添加System.Threading.dll的路径。在我的机器上,它位于C:\Windows\Microsoft.NET\Framework\v4.0.30319
  2. 在FiddlerScript中,添加import System.Threading;
  3. 您现在可以添加Thread.Sleep(1000)
  4. 等行