Esempio n. 1
0
        //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
            {
                //下载文件
            }
        }
Esempio n. 2
0
        //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
            {
                //下载文件
            }
        }