0

Fiddler4.6.20 使用script保存请求或响应数据到本地或post到其它地方保存

转:https://www.zhaokeli.com/article/8170.html

保存请求报文

打开请求前事件函数里

image.png

添加如下代码保存内容到本地D盘

复制代码

if (oSession.fullUrl.Contains("api.huoshan.com")){
    var fso;
    var file;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    //文件保存路径,可自定义    file = fso.OpenTextFile("D:\\Sessions.txt",8 ,true, true);
    file.writeLine("Request url: " + oSession.url);
    file.writeLine("Request header:" + "\n" + oSession.oRequest.headers);
    file.writeLine("Request body: " + oSession.GetRequestBodyAsString());
    file.writeLine("\n");
    file.close();
}

保存响应内容到本地

打开响应的事件函数

image.png

添加如下代码

复制代码

//过滤无关请求,只关注特定请求if (oSession.fullUrl.Contains("api.huoshan.com"))
{
    oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况    var fso;
    var file;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    //文件保存路径,可自定义    file = fso.OpenTextFile("D:\\Sessions.txt",8 ,true, true);
    file.writeLine("Response code: " + oSession.responseCode);
    file.writeLine("Response body: " + oSession.GetResponseBodyAsString());
    file.writeLine("\n");
    file.close();
}

把数据POST到其它地方

复制代码

//把内容通过ajax http发送其它地方var _xhr = new ActiveXObject('Microsoft.XMLHTTP');var url = 'http://huoshan.loc/';//发送的数据参数var param = {
    a: oSession.GetResponseBodyAsString(),
    b: 'bbbbbbbbb'};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);

另一种方法直接构造一个原数据请求头

复制代码

// methods
var method = "POST";
var url = "http://huoshan.loc/?a=responsedata";
var protocol = "HTTP/1.1";
var raw="";
var selected: Session = oSession;
raw += method + " " + url + " " + protocol + "\r\n";
FiddlerApplication.Log.LogString(raw);
// headers
raw +="Host:huoshan.loc\r\n";
raw +="Connection: keep-alive\r\n";
raw +="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n";
raw +="User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36\r\n";
raw +="Accept-Encoding: gzip,deflate,sdch\r\n";
raw +="Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4\r\n";
raw +="Content-Type: application/x-www-form-urlencoded\r\n";
// body
var body= "jsondata="+escape(oSession.GetResponseBodyAsString())+"&url="+escape(oSession.url);
raw += "\r\n" + body;
FiddlerApplication.Log.LogString(raw);
FiddlerObject.utilIssueRequest(raw);

holyzhang