Beispiel #1
0
        /// <summary>
        /// This creates a referers chain from the sessions list
        /// </summary>
        /// <param name="sessionFileName"></param>
        public static void Test(string sessionFileName)
        {
            var sessions = SazFormat.GetSessionsFromFile(sessionFileName);

            if (sessions == null)
            {
                throw new Exception("Sessions == null");
            }

            var referersChain = new Page(null, "", "", "", "", "", -1);

            foreach (var session in sessions)
            {
                var i            = 0;
                var headersArray = new string[session.oResponse.headers.Count()];
                foreach (var httpResponseHeader in session.oResponse.headers)
                {
                    headersArray[i] = httpResponseHeader.ToString();
                    i++;
                }

                var referer         = session.oRequest.headers["Referer"];
                var id              = session.id;
                var uri             = session.fullUrl;
                var body            = session.HTTPMethodIs("POST") ? session.GetRequestBodyAsString() : "";
                var htmlResponse    = session.GetResponseBodyAsString();
                var httpmethod      = session.oRequest.headers.HTTPMethod;
                var responseHeaders = string.Join("\n", headersArray);
                var responseCode    = session.responseCode;

                var refererPage = referersChain.FindRefererPage(referer, id);

                if (refererPage == null)
                {
                    referersChain.Followers.Add(new Page(new Page(null, referer, "", "", "", "", -1), uri, body, htmlResponse, httpmethod, responseHeaders, responseCode));
                }
                else
                {
                    refererPage.Followers.Add(new Page(refererPage, uri, body, htmlResponse, httpmethod, responseHeaders, responseCode));
                }
            }

            using (var fw = new StreamWriter(sessionFileName + "out.txt"))
            {
                fw.Write(referersChain.ToString("", false));
            }
        }
        /// <summary>
        /// Returns the session from saz file
        /// </summary>
        /// <param name="fiddlerSessionsFileName">fiddler session File Name</param>
        /// <returns>List of requests</returns>
        public static Session[] GetSessionsFromFile(string fiddlerSessionsFileName)
        {
            if (!File.Exists(fiddlerSessionsFileName))
            {
                throw new Exception("File doesn't exists: " + fiddlerSessionsFileName);
            }

            SazFormat.ResetId();
            var sessions = SazFormat.GetSessionsFromFile(fiddlerSessionsFileName);

            if (sessions == null)
            {
                throw new Exception("Unknown format of file: " + fiddlerSessionsFileName);
            }

            return(sessions);
        }