指定fiddler核心的响应

时间:2014-03-24 00:54:11

标签: fiddler fiddlercore

我使用fiddler核心拦截请求并提供响应。我知道可以使用saz文件来保存响应。但问题是我需要能够自定义响应。虽然它是一个saz文件,但我无法手动自定义响应。

有没有办法将fiddler捕获的响应保存为json格式的文本文件,以便我可以编辑它并可以将其作为对使用fiddler核心的任何请求的响应?现在我看到我可以将回复保存为纯文本。但是如何将此请求加载到fiddler或使用fiddler核心解析它以填充所有响应属性?是否有我可以使用的格式,这将允许我手动编辑响应?

UPDATE 我看到我可以打开saz存档,让我的编辑响应并使用它来指定响应。这正是我想要的。还有一种方法可以将响应会话保存为har文件。是否可以将单个响应保存为har / saz文件?目前我只能保存会话,它包含所有请求和响应。有没有办法将保存的数据限制为1个请求和1个响应?

1 个答案:

答案 0 :(得分:2)

您有一个SAZ文件,其中包含响应的完整内容。您的代码可以使用Utilities.ReadSessionArchive方法将SAZ文件加载到FiddlerCore中。然后,您将拥有一组Session个对象。

当FiddlerCore收到请求时,您可以评估是否希望使用先前加载的响应回复每个请求,或者是否要让请求流入服务器。要让请求流入服务器,请不要执行任何操作。

要在FiddlerCore 2.4.6.4+(尚未发布)中返回先前生成的响应,只需在新会话上调用utilAssignResponse即可。对于没有这种新方法的早期版本的FiddlerCore,您的OnBeforeRequest方法应该调用如下所示的方法:

public void utilAssignResponse(Session oS, HTTPResponseHeaders oRH, byte[] arrBody)
  oS.utilCreateResponseAndBypassServer();
  oS.oResponse.headers = (HTTPResponseHeaders)oRH.Clone();
  oS.responseBodyBytes = arrBody ?? Utilities.emptyByteArray;
  oS.oFlags["x-Fiddler-Generated"] = "Generated by myCode";
}