//This event fires when a client request is received by Fiddler static void _BeforeRequest(Session oSession) { if (!Settings.Current.CacheEnabled) { return; } if (!_Filter(oSession)) { return; } string filepath; var direction = cache.GotNewRequest(oSession.fullUrl, out filepath); if (direction == Direction.Return_LocalFile) { //返回本地文件 oSession.utilCreateResponseAndBypassServer(); byte[] file; using (var fs = File.Open(filepath, FileMode.Open, FileAccess.Read, FileShare.Read)) { file = new byte[fs.Length]; fs.Read(file, 0, (int)fs.Length); } oSession.ResponseBody = file; _CreateResponseHeader(oSession, filepath); //Debug.WriteLine("CACHR> 【返回本地】" + filepath); } else if (direction == Direction.Verify_LocalFile) { //请求服务器验证文件 //oSession.oRequest.headers["If-Modified-Since"] = result; oSession.oRequest.headers["If-Modified-Since"] = _GetModifiedTime(filepath); oSession.bBufferResponse = true; //Debug.WriteLine("CACHR> 【验证文件】" + oSession.PathAndQuery); } else { //下载文件 } }
//This event fires when a client request is received by Fiddler static void _BeforeRequest(Session oSession) { if (!Settings.Current.CacheEnabled) { return; } if (!_Filter(oSession)) { return; } string filepath; var direction = cache.GotNewRequest(oSession.fullUrl, out filepath); if (direction == Direction.Return_LocalFile) { //返回本地文件 oSession.utilCreateResponseAndBypassServer(); oSession.ResponseBody = File.ReadAllBytes(filepath); _CreateResponseHeader(oSession, filepath); //Debug.WriteLine("CACHR> 【返回本地】" + filepath); } else if (direction == Direction.Verify_LocalFile) { //请求服务器验证文件 //oSession.oRequest.headers["If-Modified-Since"] = result; oSession.oRequest.headers["If-Modified-Since"] = _GetModifiedTime(filepath); oSession.bBufferResponse = true; //Debug.WriteLine("CACHR> 【验证文件】" + oSession.PathAndQuery); } else { //下载文件 } }