I'm connecting to a REST API that returns a zip file with a small size (10k) with an XML file inside. When I copy it to a MemoryString and then Decompress it, I get the following error:
System.IO.InvalidDataException: 'The magic number in GZip header is not correct. Make sure you are passing in a GZip stream.'
Obs: When I write it directly on the disk everything goes well. Why can't I do Decompress? Thank you.
public byte[] makeGET()
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endpoint);
    request.Method = httpMethod.ToString();
    request.Headers.Add("Authorization", "Basic " + authHeader);
    request.Accept = "application/zip";
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    {
        if (response.StatusCode != HttpStatusCode.OK)
        {
            throw new ApplicationException("Error:" + response.StatusCode);
        }
        using (Stream responseStream = response.GetResponseStream())
        {
            if (responseStream != null)
            {
                /*using (Stream s = File.Create(@"c:\test.zip"))
                {
                    responseStream.CopyTo(s);
                }*/             
                using (MemoryStream msIn = new MemoryStream())
                {
                    responseStream.CopyTo(msIn);
                    return msIn.ToArray();                      
                }
            }
        }
    }
    return null;            
}
public byte[] Decompress (byte[] msIn)
{
    byte[] output;
    MemoryStream tmp = new MemoryStream(msIn);
    using (MemoryStream msOut = new MemoryStream())
    {
        using (var gzip = new GZipStream(tmp, CompressionMode.Decompress))
        {
            gzip.CopyTo(msOut);
        }
        output = msOut.ToArray();
    }
        return output;
}