private void AddRequest(ITrafficDataAccessor currentFile, Entry entry) { Uri uri = entry.Request.Url; //check exclusions Request harRequest = entry.Request; string request = String.Format("{0} {1} {2}\r\n\r\n", harRequest.Method, uri.PathAndQuery, harRequest.HttpVersion); HttpRequestInfo requestInfo = new HttpRequestInfo(request); //add the headers foreach (var header in harRequest.Headers) { if (!header.Name.ToLower().Equals("accept-encoding") && !header.Name.ToLower().Equals("if-modified-since") && !header.Name.ToLower().Equals("if-none-match")) { requestInfo.Headers.Add(header.Name, header.Value); } } if (harRequest.PostData != null) { requestInfo.ContentData = Constants.DefaultEncoding.GetBytes(harRequest.PostData.Text); } TVRequestInfo tvReqInfo = new TVRequestInfo(); tvReqInfo.Description = Resources.HarParserDescription; tvReqInfo.RequestLine = HttpRequestInfo.GetRequestLine(request); tvReqInfo.ThreadId = "N/A"; tvReqInfo.RequestTime = DateTime.Now; tvReqInfo.IsHttps = String.Compare(uri.Scheme, "https", true) == 0; tvReqInfo.Host = uri.Host; Response harResponse = entry.Response; string responseHead = String.Format("{0} {1}\r\n\r\n", harResponse.HttpVersion, harResponse.Status); HttpResponseInfo respInfo = new HttpResponseInfo(responseHead); foreach (var header in harResponse.Headers) { respInfo.Headers.Add(header.Name, header.Value); } if (harResponse.Content != null && !String.IsNullOrWhiteSpace(harResponse.Content.Text)) { respInfo.ResponseBody.AddChunkReference(Constants.DefaultEncoding.GetBytes(harResponse.Content.Text)); } currentFile.AddRequestInfo(tvReqInfo); currentFile.SaveRequestResponse(tvReqInfo.Id, requestInfo.ToArray(false), respInfo.ToArray()); }