Я получаю строковый результат из веб-службы и анализирую его следующим кодом:
public static T FromXmlString<T>(string xml)
{
T xmlClass = default(T);
using (TextReader reader = new StringReader(xml))
{
try
{
xmlClass =
(T)new XmlSerializer(typeof(T)).Deserialize(reader);
}
catch (InvalidOperationException e)
{
//
}
}
return xmlClass;
}
В результате получается сжатая строка, после разбора я пытаюсь распаковать ее с помощью следующего кода
byte[] bytes = Convert.FromBase64String(voucher.Document.Value);
using (var compressedStream = new MemoryStream(bytes))
using (var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress))
using (var resultStream = new MemoryStream())
{
zipStream.CopyTo(resultStream);
return File(resultStream.ToArray(), "application/pdf", "voucher.pdf");
}
Но я терплю неудачу каждый раз.Выдает следующее сообщение об ошибке: «Магическое число в заголовке GZip неверно. Убедитесь, что вы передаете поток GZip».
Я знаю, что есть много вопросов, подобных этому.Я пробовал все ответы по следующим ссылкам:
Строка сжатия / декомпрессии с C #
Ошибка распаковки gzipstream - магическое число в заголовке GZip неверно
https://social.msdn.microsoft.com/Forums/vstudio/en-US/21901efe-8d36-40ed-9dad-2ce9968b4273/the-magic-number-in-gzip-header-is-not-correct-error?forum=csharpgeneral
Но не получил никакого результата.Итак, ребята, у вас есть идея, почему я получаю эту ошибку.Что не так с моим кодом?
Заранее спасибо!