fiddler - 将 Fiddler 请求实时记录到数据库

标签 fiddler

有没有办法将所有正在进行的请求记录到数据库,或者只能将快照记录到数据库?

最佳答案

以下示例依赖于 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;

参见FiddlerScript CookBook

关于fiddler - 将 Fiddler 请求实时记录到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522596/

相关文章:

python请求响应位置

web - 处理Fiddler录制中相同URL上的POST参数差异?

.net - 提供参数时 SOAP 请求失败

httpwebrequest - 如何查看 fiddler 中对我的网站和我的网站 iis 5 的请求

WCF RESTful 服务 - HTTP POST 请求

visual-studio-2008 - 强制 Visual Studio 使用主机名 localhost 启动开发服务器。 (句号结尾)

asp.net - 如何将 DateTime 值发布到 Web API 2 Controller

proxy - 配置fiddler使用代理

http - 使用 Wireshark 调试 HTTP/HTTPS

ssl - Fiddler 如何删除 HTTPS 扩展?