Gallatin.Core.Service.ProxyFilter.DecompressBody C# (CSharp) Method

DecompressBody() private static method

private static DecompressBody ( IHttpResponse args, byte body ) : byte[]
args IHttpResponse
body byte
return byte[]
        private static byte[] DecompressBody(IHttpResponse args, byte[] body)
        {
            string contentEncoding = args.Headers["content-encoding"];
            if (contentEncoding != null
                && contentEncoding.ToLower().Contains("gzip"))
            {
                ServiceLog.Logger.Verbose("Removing compression from HTTP response");

                args.Headers.RemoveKeyValue("content-encoding", "gzip");
                MemoryStream memoryStream = new MemoryStream(body);
                using (GZipStream gZipStream = new GZipStream(memoryStream, CompressionMode.Decompress))
                {
                    MemoryStream newBody = new MemoryStream();
                    gZipStream.CopyTo(newBody);

                    body = new byte[newBody.Length];
                    Array.Copy(newBody.ToArray(), body, body.Length);
                    args.Headers.UpsertKeyValue("Content-Length", body.Length.ToString());
                }
            }
            return body;
        }