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