byte[] bytes = myclient.GetDataAndIAQI0320("北京", "");
//以下为偏移四个字节
MemoryStream ms = new MemoryStream(bytes, 4, bytes.Length-4 );
string str2 = DecompressString(ms.ToArray());
以下为deflateStream函数:
/// <summary>
/// 解压字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string DecompressString(byte[] str)
{
return Encoding.UTF8.GetString(DecompressBytes(str));
}
/// <summary>
/// 解压二进制
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static byte[] DecompressBytes(byte[] str)
{
var ms = new MemoryStream(str) { Position = 0 };
var outms = new MemoryStream();
using (var deflateStream = new DeflateStream(ms, CompressionMode.Decompress, true))
{
var buf = new byte[1024];
int len;
while ((len = deflateStream.Read(buf, 0, buf.Length)) > 0)
outms.Write(buf, 0, len);
}
return outms.ToArray();
}
但是运行的时候报错,错误提示为:块的长度与它的补集不匹配。
--
FROM 219.140.167.*