Fiddler 自动导出请求的地址和数据

本文介绍如何在Fiddler的FiddlerScript中设置,以便自动导出请求的URL和数据。主要涉及在OnBeforeRequest事件中添加代码,以及处理Java和C#数组之间的转换问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在Fiddler 的 FiddlerScript 中进行编辑

2、在OnBeforeRequest中插入代码,

//这里其实我们的项目是分为不同的传输方式的,所以有两种判断,根据自己的情况来定
if (oSession.fullUrl.Contains("appUri")){
    var fso;
    var file;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    //文件保存路径,可自定义
    file = fso.OpenTextFile("C:\\Users\\user\\Desktop\\test.txt",8 ,true,true);
    //这里其实有好多方法,获取不同的数据,可以点击右上角的ClassView进行查看
    //row["data"] = oSession.GetRequestBodyAsString();
    //row["data"] = oSession.requestBodyBytes;
    //row["data"] = oSession.WriteRequestToStream;
    //这里需要特别注意一下,导出的byte[]数组值范围是0~255,不是java中的-128~127,如果需要请看文章底部
    var array = new Array("postenc",oSession.url, oSession.requestBodyBytes);
    //file.writeLine("{\"flag\":\""+ row["flag"] + "\",\"url\":\""+row["url"] +"\",\"data\":\""+row["data"]+"\"}");
    //这里为了方便,我就把所有的数据加到了数组中,然后用join方法,写到一行了,为了自动化脚本,根据自己情况定
    file.writeLine(array.join("---------"));
    /*file.writeLine("Request header:" + "\n" + oSession.oRequest.headers.HTTPMethod);
    file.writeLine("flag: postenc");
    file.writeLine("Request url: " + oSession.url);
    file.writeLine("Request body: " + oSession.GetRequestBodyAsString());
    file.writeLine("\n");*/
    file.close();
}
else if (oSession.fullUrl.Contains("Uri1")||oSession.fullUrl.Contains("Uri2")||oSession.fullUrl.Contains("Uri3")){
    var fso;
    var file;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    //文件保存路径,可自定义
    file = fso.OpenTextFile("C:\\Users\\user\\Desktop\\test.txt",8 ,true,true);
    if(oSession.oRequest.headers.HTTPMethod.Equals("POST") || oSession.oRequest.headers.HTTPMethod.Equals("GET")){
        //row["flag"] =oSession.oRequest.headers.HTTPMethod;
        //row["url"] = oSession.url;
        //row["data"] = oSession.GetRequestBodyAsString();
        var array = new Array(oSession.oRequest.headers.HTTPMethod,oSession.url, oSession.GetRequestBodyAsString());
        file.writeLine(array.join("---------"));
    /*file.writeLine("Request url: " + oSession.url);
    file.writeLine("Request body: " + oSession.GetRequestBodyAsString());
    file.writeLine("\n");*/
    }
    file.close();
}

 

java中数组和C#中数组进行转化

//这里的encString转换过程 C#Byte[]----》String----》String[]
String[] encString = a[2].split(",");
int[] encInt = new int[encString.length];
byte[] encBytes = new byte[encString.length];
for (int i=0;i<encString.length;i++){
    //C#的byte[]数组是0~255,java的byte[]数组是-128~127,之间需要进行转换
    //然后将String[]---》int[]----》Byte[](java中的)
    encInt[i] = Integer.parseInt(encString[i]);
    encBytes[i] = (byte) (encInt[i]&0xff);
}
### 使用Fiddler进行请求转发导出 #### 请求转发 通过Fiddler可以轻松实现HTTP(S)流量的捕获与修改,进而完成请求转发操作。当目标是将某个特定请求重新发送至另一服务器地址时,可以在Fiddler界面中选中该条目,在右侧Inspector窗口内查看并编辑此请求的具体参数[^2]。 对于需要频繁执行的任务或是批量处理多个请求的情况,则可利用Composer功能来构建自定义请求,并指定新的目的地URL来进行转发测试。此外,借助于AutoResponder模块能够自动响应某些模式匹配下的请求,从而达到更高效的开发调试目的[^1]。 #### 导出请求 为了便于后续分析或分享给他人,Fiddler提供了多种方式用于保存会话数据: - **单个Session导出**:右键点击想要导出的session项,选择`Copy > All Sessions as cURL (bash)`选项可以直接复制成命令行形式;也可以选择`Export Session(s)...`并通过弹窗选取合适的文件格式如HTML、Markdown等进行保存。 - **多Sessions批量导出**:先按住Ctrl键逐个勾选所需sessions或者Shift键连续选择范围内的项目,再按照上述方法统一导出为单一文档或多份独立文件。 值得注意的是,在涉及到敏感信息传输的过程中应当格外小心谨慎,确保不会因不当操作而导致隐私泄露等问题发生[^3]。 ```bash curl -X GET "https://example.com/api/v1/resource" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值