Fiddler 自动保存图片及相关内容
1、打开Fiddler ,找到 规则(Rules)-> 自定义规则(Customize Rules) 打开 规则代码。
2、定位并找到 static function OnDone(oSession: Session) 处。(该部分代码默认情况下是注释状态,)
static function OnDone(oSession: Session) { //检查Content-Type if (oSession.ResponseHeaders["Content-Type"]!=null || oSession.ResponseHeaders["content-type"]!=null) { //避免不规范标头 var contentType=oSession.ResponseHeaders["Content-Type"]; if (String.IsNullOrEmpty(contentType) ) contentType=oSession.ResponseHeaders["content-type"]; //判定请求是否图片 if (contentType.Contains("image")) { //确定文件名(保存用) var fileName=""; var fileIndex = oSession.RequestHeaders.RequestPath.LastIndexOf ("/"); if (fileIndex>0) fileName = oSession.RequestHeaders.RequestPath.Substring (fileIndex+1); //如果文件名非法(名称含非法字符) if(fileName.IndexOf('?')>0 || fileName.IndexOf('&') ) fileName=String.Empty; //输出日志(在Fiddler 主窗口,日志处输出) //FiddlerObject.log("Content-Type:"+ contentType +" RequestPath:"+oSession.RequestHeaders.RequestPath); //如果文件名为Null,自行创建一个文件名(Guid) if (String.IsNullOrEmpty( fileName)) { fileName=Guid.NewGuid().ToString(); var extName= contentType.Replace("image/",""); fileName=fileName+"."+extName; } //太小的图片不要,比如站位图片(自行调节) if (oSession.ResponseBody.Length>100) { //指定保存位置 var saveDir="d:\\Temp\\"; //不存在则创建文件夹 if (!System.IO.Directory.Exists(saveDir)) System.IO.Directory.CreateDirectory(saveDir); //保存响应流 oSession.SaveResponseBody(saveDir+fileName); //写日志 FiddlerObject.log("[文件保存]:"+fileName) } } } }
保存后,Fiddler 会自动加载并应用此规则。
自此,本机或通过代理过来的 访问中如果有图片的,均会自动保存在d:\temp 文件夹下
道阻且长,行则将至!