/// <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); }