Fiddler脚本自动保存响应体

时间:2014-08-20 22:43:46

标签: scripting fiddler

我需要帮助为fiddler编写脚本。我需要的是每次在会话窗口中出现时自动保存某个响应主体。

我已尝试按照此帖Fiddler Script - SaveResponseBody()中的说明操作,但在尝试保存CustomRules.js时出现错误。 (我可能插入错误或错误的地方)

我是小提琴手和剧本的新手,所以任何帮助都会非常感激。

我尝试添加此内容:

static function OnBeforeResponse(oSession: Session) {
   if(oSession.url.EndsWith(".png")) {
      oSession.SaveResponseBody(); //Actual content of OnBeforeResponse function.
   }
}

然后添加:

if ((oSession.responseCode == 200) &&
    oSession.oResponse.headers.ExistsAndContains("Content-Type", "image/png")) {
   SaveResponseBody("C:\\temp\\" + oSession.SuggestedFilename);
}

到CustomRules.js脚本。

2 个答案:

答案 0 :(得分:5)

SaveResponseBody是oSession对象上的一个方法。

oSession.SaveResponseBody("C:\\temp\\" + oSession.SuggestedFilename);

答案 1 :(得分:4)

请务必在 OnBeforeResponse(oSession:Session){...} 功能中添加您的代码

以下代码将保存包含“procedimentoservice”的任何url的请求和响应正文以及与OK(200)不同的响应代码。

if (oSession.PathAndQuery.ToLower().Contains("procedimentoservice"))
        {
            if(oSession.responseCode != 200)
            {
                var directory2 = "C:\\log\\NEXT\\";
                var filename2 = oSession.oRequest.headers['SOAPAction'].ToString().Replace('"','') + "_" + Guid.NewGuid();
                var path2: String = System.IO.Path.Combine(directory2, filename2);

                oSession.SaveRequestBody(path2 + "_request.txt");
                oSession.SaveResponseBody(path2 + "_response.txt");
            }
        }

文件名将采用以下格式:

c:\log\NEXT\CriarEvento_fa15709e-b2a8-402d-a623-e4f01e6e8ae1_request.txt
c:\log\NEXT\CriarEvento_fa15709e-b2a8-402d-a623-e4f01e6e8ae1_response.txt
c:\log\NEXT\CriarEvento_ff650cf8-8fe6-47a2-8552-a4d8bce246f3_request.txt
c:\log\NEXT\CriarEvento_ff650cf8-8fe6-47a2-8552-a4d8bce246f3_response.txt