阻止正文符合某些条件的响应

Blocking a response whose body matches some condition

在 Fiddler 中,如果正文包含特定单词,是否可以阻止响应?

如果 Fiddler 能够做到这一点(可能通过 FiddlerScript?),那就太棒了。否则,如果有其他更好的工具,我很想听听。

What is the best way to block specific URL for testing? 上有人提出了类似的问题,但就我而言,我不想完全阻止 URI,而是只阻止 certain 响应URI,因此该答案不适用。

可能的线索

在 FiddlerScript 中,似乎有一个名为 utilFindInResponse 的函数,可以像这样合并到 OnBeforeResponse 中:

static function OnBeforeResponse(oSession: Session) {
    ...
    if (oSession.utilFindInResponse("WordToBlock", false) > -1){
    oSession.responseCode = "404";
    }
}

这是解决搜索特定词的响应拦截器的正确方法吗?

是的,您走在正确的轨道上,但在尝试搜索之前,您可能应该确保所讨论的响应是 HTML(或您期望的任何文本格式)。

static function OnBeforeResponse(oSession: Session) {
  if (oSession.oResponse.headers.ExistsAndContains("Content-Type", "text/"))
  {
    oSession.utilDecodeResponse();
    if (oSession.utilFindInResponse("WordToBlock", false) > -1)
    {
      oSession.responseCode = 404;
      oSession.utilSetResponseBody("blocked");
    }
  }
}

此外,请记住,必须禁用流式传输选项(请参阅 Fiddler 的工具栏),此代码才能按预期工作。