进行中 Telerik Fiddler Web Debugger 有没有办法在 AutoResponder 中自动调整 Content-Length?
Posted
技术标签:
【中文标题】进行中 Telerik Fiddler Web Debugger 有没有办法在 AutoResponder 中自动调整 Content-Length?【英文标题】:In Progress Telerik Fiddler Web Debugger is there a way to adjust Content-Length automatically in AutoResponder? 【发布时间】:2022-01-03 17:40:45 【问题描述】:我正在使用提琴手自动回复器返回一个与最初从我的服务器加载的文件不同的 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 标头不会自动调整为已编辑的文件。所以我必须尝试加载我的更改,我的应用程序会因为 Content-Length 错误而崩溃,但随后我检查 fiddlers 'transformer' 选项卡以查看我的请求正文实际有多少字节,在我修改的文件中更新它,刷新再次,然后它工作。
我尝试将编码更改为分块,以便我可以省略 Content-Length 标头,但我认为我的应用不知道如何解码分块。
所以我的问题是,有没有办法在自动回复中自动更新 Content-Length?
【问题讨论】:
【参考方案1】:您可以简单地使用 Fiddler 经典版中的 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);
【讨论】:
您好罗伯特,非常感谢您的回答!它有点工作,我把它和之前的东西放在 OnBeforeRequest 函数中。它确实正确加载了文件并像您说的那样设置了 Content-Length,但是它永远不会完成它的加载,如果我直接在浏览器中访问该文件,它会显示 100% 正确的文件,但它只是一直在旋转。我想在 oSession 上调用其他东西来完成请求吗? @DenLilleMand 我更新了答案,我不确定为什么代码对我有用,更新后的部分现在使用utilCreateResponseAndBypassServer
,如果您想在 OnBeforeRequest 中发送响应,这似乎是合理的。跨度>
嗨罗伯特,非常感谢你的帮助,我冒昧地更新了最终对我有用的代码。如果需要,请随时再次编辑,这只是一个建议。以上是关于进行中 Telerik Fiddler Web Debugger 有没有办法在 AutoResponder 中自动调整 Content-Length?的主要内容,如果未能解决你的问题,请参考以下文章