1.点击顶部工具栏"Rules"

Fiddler4设置脚本-保存抓包结果_c#

然后点击“Customize Rules".

2. 查找OnBeforeResponse方法

在弹框中Ctrl+F查找 OnBeforeResponse方法:

Fiddler4设置脚本-保存抓包结果_c#_02

然后在方法的后面追加如下代码:

var isJson=oSession.ResponseHeaders.ExistsAndContains("Content-Type","json");
if (oSession.fullUrl.Contains("xxxx.com")&&isJson) {
oSession.utilDecodeResponse();
//消除保存的请求可能存在乱码的情况
var fso;
var file;
fso = new ActiveXObject("Scripting.FileSystemObject");
ar curDate = new Date();
var logContent = "[" + curDate.toLocaleString() + "] ";
//文件保存路径,可自定义
file = fso.OpenTextFile("./xxxx_response.txt",8 ,true, true);
file.writeLine(logContent+"Response code: " + oSession.responseCode+" "+oSession.PathAndQuery);
file.writeLine(logContent+"Response body: " + oSession.GetResponseBodyAsString());
file.writeLine("\n");
file.close();

}

(只保存xxxx.com域名下的json body)

保存的文本如下:

Fiddler4设置脚本-保存抓包结果_fiddler脚本_03

3. 如果你是C#开发者的话,接下来的这种方式你可能更喜欢

点击工具栏Tools->Options->Scripting

Fiddler4设置脚本-保存抓包结果_c#_04

将脚本语言改为C#,保存并重启Fillder之后,你会发现Rules已经变成了熟悉的C#

Fiddler4设置脚本-保存抓包结果_fiddler_05

接下来点击Insert->Context Menu Item在Session上下文中插入一个右键菜单,如下:

Fiddler4设置脚本-保存抓包结果_fiddler脚本_06

这里我将框中的代码修改为:

// Create a new item on the right-click menu of the Session List (and the toolbar).
[ContextAction("&保存返回值到txt")]
[BindUIButton("保存返回值到txt")]
public static void DoUNTITLED(Session[] oSessions)
{
for (int x = 0; x < oSessions.Length; x++)
{
var oSession=oSessions[x];
//消除保存的请求可能存在乱码的情况
oSession.utilDecodeResponse();
var curDate =DateTime.Now;
var logHeader = "[" + curDate.ToString("yyyy-MM-dd HH:mm:ss") + "] ";
var filePath=Path.Combine("./"+"xxx_response_"+curDate.ToString("yyyy_MM_dd")+".txt");
var oldFilePath=Path.Combine("./"+"xxx_response_"+curDate.AddDays(-1).ToString("yyyy_MM_dd")+".txt");
if(File.Exists(oldFilePath))
{
File.Delete(oldFilePath);
}
using(StreamWriter sw=File.AppendText(filePath))
{
sw.WriteLine(logHeader+"Response code: " + oSession.responseCode+" "+oSession.PathAndQuery);
sw.WriteLine(logHeader+"Response body: " + oSession.GetResponseBodyAsString());
sw.WriteLine("");
}
}
}

这样我想保存哪些session返回结果的时候,可以直接在这些session上右键:

Fiddler4设置脚本-保存抓包结果_fiddler_07

有没有很方便