解压缩Gzip String C#Windows Phone 8

时间:2013-11-29 12:30:09

标签: c# json windows-phone-8 gzip compression

我正在开发我的第一个Windows Phone 8应用程序。我试图从服务器获取压缩的json,但是,我有解压缩的问题。

读完几个小时后,我尝试了两种方法:

- >使用Microsoft.Bcl.Compression自动解压缩:

var handler = new HttpClientHandler();
if (handler.SupportsAutomaticDecompression)
{
    handler.AutomaticDecompression = DecompressionMethods.GZip;
}
var httpClient = new HttpClient(handler);
var str = await httpClient2.GetStringAsync(url);

但结果仍然是压缩的。

- >获取压缩的信息,将其转换为byte []并尝试解压缩de byte []。

var result = await client.GetStringAsync(url);
// convert string to stream
byte[] byteArray = Encoding.UTF8.GetBytes(result);
var bigStream = new GZipStream(new MemoryStream(byteArray), CompressionMode.Decompress);
var bigStreamOut = new System.IO.MemoryStream();
bigStream.CopyTo(bigStreamOut);
string s = bigStreamOut.ToString();

-bigStream属性: -BufferSize 16384 -CanRead是的 -CanSeek假 -CanWrite true -Comment null -Crc32 0 -FileName null -FlushMode无 -LastModified null - 位置0 -Lenght,TotalIn和TotalOut抛出异常。

顺便说一句,json是使用GZip压缩的,它在iOS版本中运行良好。

THX

1 个答案:

答案 0 :(得分:2)

尝试使用官方Microsoft NuGet包Microsoft Compression Here are even some guides,如何与HttpClient一起使用。