环境:
windows 7
Fidder 5.0
需求:要抓包的时候,要保存相关的请求信息,如:地址、参数、返回等
可以使用Fidder Script 来实现,步骤如下:
1. 在主界面中,按快捷键[ ctrl + r ]就可以打开其默认的脚本文件,前提已安装其自带的编辑器【Fidder ScriptEditor】,如图:

2. 此脚本使用的是语言是 --> JScript.Net 类似C#,要深入的话,自己学语法吧
3. 主要函数:

4. 根据需要,可在相应的方法添加自己的脚本代码,我的代码如下:
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
//滤无关请求,只关注特定请求
if (oSession.HostnameIs("api.kkk.net") && oSession.uriContains("/api/v1/")) {
// 标红
oSession["ui-backcolor"] = "red";
//消除保存的请求可能存在乱码的情况
oSession.utilDecodeResponse();
// 保存的文件
var filename = "c:/response.log";
// 请求地址
var logContent = '["api_url"=>"' + oSession.PathAndQuery.Replace('/api/v1','')+'", ';
// 请求 POST参数
var postData = oSession.GetRequestBodyAsString();
// 响应结果
var st = oSession.GetResponseBodyAsString();
var responseData = logContent +'"api_args"=>"' +postData+ '",'+'"api_response"=>'+"'"+ st.Replace("'","") + "'],";
// 文件句柄
var sw : System.IO.StreamWriter;
if (System.IO.File.Exists(filename)){
sw = System.IO.File.AppendText(filename);
sw.Write(responseData);
} else {
sw = System.IO.File.CreateText(filename);
sw.Write(responseData);
}
sw.Write("\r\n");
sw.Close();
// 注意,使用如下代码,多个请求的时候,会报错
// sw.Dispose();
}
5. 保存的时候,会自动编译并执行脚本检查,注意看错误提示