In Progress Telerik Fiddler Web Debugger 有没有办法在 AutoResponder 中自动调整 Content-Length?

In Progress Telerik Fiddler Web Debugger is there a way to adjust Content-Length automatically in AutoResponder?

我正在使用 fiddler autoresponder return 一个不同于最初从我的服务器加载的 JS 文件。调整后的文件使用:

HTTP/1.1 200 OK
Cache-Control: private, max-age=31536000
Content-Type: application/javascript
...other headers
Content-Length: 37010

...the javascript code

在文件的顶部,Content-Length header 不会自动调整为已编辑的文件。所以我必须尝试加载我的更改,我的应用程序会崩溃,因为 Content-Length 是错误的,但随后我检查提琴手 'transformer' 选项卡以查看我的请求 body 实际有多少字节,在我修改过的文件中更新它,再次刷新然后它就可以工作了。

我曾尝试将编码更改为分块,这样我就可以省去 Content-Length header,但我认为我的应用出于某种原因不知道如何解码分块。

所以我的问题是,有没有办法自动更新 auto-responder 中的 Content-Length?

您可以简单地使用 Fiddler classic 中的 FiddlerScript 来构建您的自动回复器。这样内容长度就会自动设置:

static function OnBeforeRequest(oSession: Session) {
     // ... some other FiddlerScript code

     // host is e.g. "localhost:3000"
     if (oSession.HostnameIs("<host>") && oSession.uriContains("<file name>.js")) {
        oSession.utilCreateResponseAndBypassServer();
        oSession["ui-backcolor"] = "lime"; // Makes it more visible
        if (!oSession.LoadResponseFromFile("<file path>.js")) {
            throw new ApplicationException("LoadResponseFromFile Failed!! ");
        }
        // Just loads forever if Content-Length is not added
        oSession.oResponse["Content-Length"] = oSession.responseBodyBytes.GetLength(0);
    }
}