有没有办法将所有正在进行的请求记录到数据库,或者只能将快照记录到数据库?
最佳答案
以下示例依赖于 OLEDB 4.0,该版本不适用于 64 位进程。您可以选择其他数据提供程序(例如 SQLServer),也可以强制 Fiddler 在 32 位模式下运行。
将以下内容添加到规则文件中以创建新的菜单项。
// 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 添加到“工具”|“引用”列表中。 fiddler 选项 |扩展 |脚本编写。在 2.3.9.1 及更高版本中,此引用将自动发生。 然后,在规则脚本的顶部列出新的导入:
import System.Data.OleDb;
关于fiddler - 将 Fiddler 请求实时记录到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522596/