在FiddlerScript中添加延迟

Dum*_*fus 4 fiddler

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

我可以找到的唯一参考是在这里,它使用了以下残酷行为(请勿使用!):

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

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);
}
Run Code Online (Sandbox Code Playgroud)

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

Pet*_*ter 5

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

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