// 保存目录路径
public static var dirPath: String = 'E:\\spider-data';
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
// 过滤请求
if (oSession.fullUrl.Contains("baidu.com")) {
oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况
var jsonString = oSession.GetResponseBodyAsString();
var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(jsonString);
if((responseJSON.JSONObject=='System.Collections.ArrayList' || responseJSON.JSONObject=='System.Collections.Hashtable')&&jsonString!='[]'&&jsonString!='{}'){
// 判断是否是json数据 然后保存
var data = responseJSON.JSONObject
jsonString = Fiddler.WebFormats.JSON.JsonEncode(data)
// 读取data的值必须用中括号,例如:data['id']
// --------- 保存文件到本地 ------------------------
// 文件路径
var time = new Date().getTime();
var filePath = dirPath+"\\"+time+".json";
if (System.IO.File.Exists(filePath)){
FiddlerObject.log('文件已存在');
return;
}
// 创建目录
if (!System.IO.Directory.Exists(dirPath)) {
System.IO.Directory.CreateDirectory(dirPath);
}
var sw: System.IO.StreamWriter = System.IO.File.CreateText(filePath);
sw.Write(jsonString);
sw.Close();
sw.Dispose();
FiddlerObject.log('文件保存成功');
// --------- 数据通过post请求发送自己的后台服务保存--------------
var _xhr = new ActiveXObject('Microsoft.XMLHTTP');
var url = 'http://localhost:3000/test';
//发送的body数据参数
var param = {
data:data
};
var par = '';
for (var i in param) {
var _data = escape(param[i]);
par += par ? ("&" + i + "=" + _data) : (i + "=" + _data);
}
//不需要返回值所以写啦个空回调
_xhr.onreadystatechange = function() {}
_xhr.open('POST', url, true);
_xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
_xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
_xhr.send(par);
}
}
}