【问题标题】:specify response for fiddler core指定提琴手核心的响应
【发布时间】:2014-03-24 00:54:10
【问题描述】:

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

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

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

【问题讨论】:

  • 您的“更新”引入了一个新的且不相关的问题;最好提出一个新问题,而不是试图在这里进行对话。您可以根据需要将尽可能少或尽可能多的会话保存到 SAZ 文件中。

标签: fiddler fiddlercore


【解决方案1】:

您有一个 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";
}

【讨论】:

  • Eric,saz文件的问题是我不能手动编辑。我的意思是内容是压缩的。有什么方法可以加载纯文本模式或某种我可以编辑的格式的响应,比如在记事本中?
  • 您可以使用 Fiddler 编辑 SAZ 文件。打开它。选择任何会话,右键单击并选择 Unlock for Editing。编辑会话。右键单击并取消选中解锁以进行编辑。完成修改后保存 SAZ 文件。 (或者,您的代码可以在从 SAZ 文件加载会话后对其进行编辑)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 2020-11-30
相关资源
最近更新 更多