Decompression of response from API server To Decompress the returned compressed request, please use the following code or a variation of it. Service Consumption: var compressedBytes = proxy.MakeRequestCompressed("0", String.Empty); Soap/Post: var compressedBytes = Convert.FromBase64String(MakeRequestCompressedResult.InnerText); var decompressedBytes = Decompress(compressedBytes); string decompressedResponse = Encoding.Default.GetString(decompressedBytes); With Decompress implemented as follows: public static byte[] Decompress(byte[] data) { using (var input = new MemoryStream()) { using (var output = new MemoryStream()) { try { input.Write(data, 0, data.Length); input.Position = 0; using (var gzip = new GZipStream(input, CompressionMode.Decompress, true)) { byte[] buff = new byte[64]; int read = gzip.Read(buff, 0, buff.Length); while (read > 0) { output.Write(buff, 0, read); read = gzip.Read(buff, 0, buff.Length); } gzip.Close(); } } catch (Exception ex) { //Handle error on process } return output.ToArray(); } } }
Service Consumption: var compressedBytes = proxy.MakeRequestCompressed("0", String.Empty); Soap/Post: var compressedBytes = Convert.FromBase64String(MakeRequestCompressedResult.InnerText); var decompressedBytes = Decompress(compressedBytes); string decompressedResponse = Encoding.Default.GetString(decompressedBytes); With Decompress implemented as follows: public static byte[] Decompress(byte[] data) { using (var input = new MemoryStream()) { using (var output = new MemoryStream()) { try { input.Write(data, 0, data.Length); input.Position = 0; using (var gzip = new GZipStream(input, CompressionMode.Decompress, true)) { byte[] buff = new byte[64]; int read = gzip.Read(buff, 0, buff.Length); while (read > 0) { output.Write(buff, 0, read); read = gzip.Read(buff, 0, buff.Length); } gzip.Close(); } } catch (Exception ex) { //Handle error on process } return output.ToArray(); } } }