我正在开发我的第一个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
答案 0 :(得分:2)
尝试使用官方Microsoft NuGet包Microsoft Compression Here are even some guides,如何与HttpClient一起使用。