PDA

View Full Version : سوال: دریافت فایل xml از سرور



TeacherMath
سه شنبه 09 تیر 1394, 23:34 عصر
باسلام. وقتی می خوام یه فایل xml از سرور دریافت کنم خطای

System.Xml.XmlException: '', hexadecimal value 0x1F, is an invalid character. Line 1, position 1
رو میده. دلیلش اینه که سرور اونو gzip میکنه چطور باید این مشکل رو حل کرد. تشکر.

TeacherMath
چهارشنبه 10 تیر 1394, 11:47 صبح
string xml;
using (var client = new WebClient())
{
client.Headers[HttpRequestHeader.AcceptEncoding] = "gzip";
var data = client.DownloadData(xmlUrl);
var decompress = Decompress(data);
xml = Encoding.ASCII.GetString(decompress);
}

var document = new XmlDocument();
document.LoadXml(xml);


private static byte[] Decompress(byte[] gzip) {
// Create a GZIP stream with decompression mode.
// ... Then create a buffer and write into while reading from the GZIP stream.
using (var stream = new GZipStream(new MemoryStream(gzip), CompressionMode.Decompress))
{
const int size = 4096;
var buffer = new byte[size];
using (var memory = new MemoryStream())
{
int count;
do
{
count = stream.Read(buffer, 0, size);
if (count > 0)
{
memory.Write(buffer, 0, count);
}
} while (count > 0);
return memory.ToArray();


}
}
}