大脑冻结与gzip文件,包含XML文件,我想作为一个流

本文关键字:文件 一个 冻结 gzip 包含 XML | 更新日期: 2023-09-27 18:15:54

这是烤我的头,我需要一个XML提要,但提要是在一个gzip文件。现在我可以下载,解包,保存文件等等

,但我想做的是得到内存中的gzip将内容存入存储器将内容读入内存然后将其传递给序列化器

这里的

问题是结果包含不可读的乱码,而reader1和reader都不包含乱码。这里我又少了一行,但似乎找不到它是什么。

var request = (HttpWebRequest)HttpWebRequest.Create("urltofeed.com");
request.Credentials = CredentialCache.DefaultCredentials;
// auto unpack gzip
request.AutomaticDecompression = DecompressionMethods.GZip;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader data = new StreamReader(response.GetResponseStream()); 
var result = data.ReadToEnd();
XmlReader reader1 = XmlReader.Create(response.GetResponseStream());
var reader = new XmlTextReader(response.GetResponseStream());

大脑冻结与gzip文件,包含XML文件,我想作为一个流

直接来自MSDN:

            //Create the decompressed file.
            using (FileStream outFile = File.Create(origName))
            {
                using (GZipStream Decompress = new GZipStream(inFile,
                        CompressionMode.Decompress))
                {
                    // Copy the decompression stream 
                    // into the output file.
                    Decompress.CopyTo(outFile);
                    Console.WriteLine("Decompressed: {0}", fi.Name);
                }
            }

比如

using (var GZipStream decompress = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress))
{
    // XmlReader reader1 = XmlReader.Create(decompress);
    // or ? var reader = new XmlTextReader(decompress);
}

您必须解压缩gzip-file,这一步缺失了。试试这个:GZipStream并解压