我想解压和解析位于here下载并解压缩XML文件
这里的XML文件是我的代码:
HttpClientHandler handler = new HttpClientHandler()
{
CookieContainer = new CookieContainer(),
UseCookies = true,
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
// | DecompressionMethods.None,
};
using (var http = new HttpClient(handler))
{
var response =
http.GetAsync(@"https://login.tradedoubler.com/report/published/aAffiliateEventBreakdownReportWithPLC_806880712_4446152766894956100.xml.zip").Result;
Stream streamContent = response.Content.ReadAsStreamAsync().Result;
using (var gZipStream = new GZipStream(streamContent, CompressionMode.Decompress))
{
var settings = new XmlReaderSettings()
{
DtdProcessing = DtdProcessing.Ignore
};
var reader = XmlReader.Create(gZipStream, settings);
reader.MoveToContent();
XElement root = XElement.ReadFrom(reader) as XElement;
}
}
我得到一个异常的XmlReader.Create(gZipStream,设置)
GZip标头中的幻数不正确。请确保您在一个gzip料流通
要仔细检查,我从网上获取正确格式化的数据,我抢流,并将其保存到一个文件:
byte[] byteContent = response.Content.ReadAsByteArrayAsync().Result;
File.WriteAllBytes(@"C:\\temp\1111.zip", byteContent);
我考察1111后.zip,它显示为格式良好的zip文件,并带有我需要的xml。
,我被告知here,我并不需要GZipStream可言,但如果我从代码完全删除压缩数据流,并通过streamContent直接向XML阅读器,我得到一个异常:
“数据在根级别无效,行1,位置1“。
无论是压缩或不压缩,我仍然无法解析此文件。我究竟做错了什么?