有没有办法记录所有正在进行数据库的请求,还是只能将快照记录到数据库?
答案 0 :(得分:2)
以下示例依赖于OLEDB 4.0,它不适用于64位进程。您可以选择其他数据提供程序(例如SQLServer),也可以强制Fiddler以32位模式运行。
将以下内容添加到Rules文件中以创建新的菜单项。
// Log the currently selected sessions in the list to a database.
// Note: The DB must already exist and you must have permissions to write to it.
public static ToolsAction("Log Selected Sessions")
function DoLogSessions(oSessions: Fiddler.Session[]){
if (null == oSessions || oSessions.Length < 1){
MessageBox.Show("Please select some sessions first!");
return;
}
var strMDB = "C:\\log.mdb";
var cnn = null;
var sdr = null;
var cmd = null;
try
{
cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strMDB);
cnn.Open();
cmd = new OleDbCommand();
cmd.Connection = cnn;
for (var x = 0; x < oSessions.Length; x++){
var strSQL = "INSERT into tblSessions ([ResponseCode],[URL]) Values (" +
oSessions[x].responseCode + ", '" + oSessions[x].url + "')";
cmd.CommandText = strSQL;
cmd.ExecuteNonQuery();
}
}
catch (ex){
MessageBox.Show(ex);
}
finally
{
if (cnn != null ){
cnn.Close();
}
}
}
注意:要在Fiddler 2.3.9及更低版本中使用数据库对象,您需要将system.data添加到工具|中的参考列表中。提琴手选项|扩展|脚本。在2.3.9.1及更高版本中,此引用将自动发生。 然后,在规则脚本的顶部列出新导入:
import System.Data.OleDb;