Exemplo n.º 1
0
        public void LogToDisk(int sequence, ResponseLog log)
        {
            var debugFolder = Path.Combine(_environmentService.ReplayLogFolder, @"log2Disk");

            Directory.CreateDirectory(debugFolder);

            var pathAsSafeFilename = log.RequestUri.PathAndQuery.Replace("/", "_").Replace("?", "_");
            var filename           = sequence + "_" + pathAsSafeFilename + "_" + log.RequestUri.Host;

            var debugFile = Path.Combine(debugFolder, $"{filename}.txt");

            var sb = new StringBuilder();

            sb.AppendLine($"Request.Url={log.RequestUri}");
            sb.AppendLine($"Request.Body:{log.RequestBody}");
            sb.AppendLine($"Request.Method:{log.RequestMethod}");
            sb.AppendLine("Response:");
            sb.Append(log.ResponseBody);

            File.WriteAllText(debugFile, sb.ToString());
        }
Exemplo n.º 2
0
        public static ResponseLog GetResponse(IPAddress targetIp, int port, string pathAndQuery)
        {
            var result = new ResponseLog();

            using (var httpClient = new HttpClient())
            {
                var uri = new Uri($"http://{targetIp}:{port}" + pathAndQuery);

                result.RequestUri = uri;

                try
                {
                    HttpResponseMessage response = httpClient.GetAsync(uri).Result;
                    var stream = response.Content.ReadAsStreamAsync().Result;

                    var reader = new StreamReader(stream);
                    result.ResponseBody = reader.ReadToEnd();

                    stream.Seek(0, SeekOrigin.Begin);
                    result.ResponseBytes = ReadFully(stream);

                    if (result.ResponseBody.StartsWith("<"))
                    {
                        result.ResponseBody = AsFormattedXml(result.ResponseBody);
                    }
                    if (result.ResponseBody.StartsWith("{"))
                    {
                        result.ResponseBody = AsFormattedJson(result.ResponseBody);
                    }
                }
                catch (Exception e)
                {
                    result.ResponseBody = e.Message;
                }
            }
            return(result);
        }