我尝试使用的 API 返回 base64 编码的响应。首先使用具有 4 位偏移量的 GZip 压缩响应,然后进行 Base64 编码。我尝试使用 JavaScript( pako和zlib )解析响应,但在这两种情况下都失败了。API 有一个关于响应解压缩如何工作的 C# 代码示例,但我真的不知道如何将其转换为 JavaScript。那么谁能帮我把这个函数转换成 JavaScript 或者给我一些关于如何处理 4 字节偏移的提示?我在图书馆的文档中没有找到任何相关内容。
public string Decompress(string value)
{
byte[] gzBuffer = Convert.FromBase64String(value);
using (MemoryStream ms = new MemoryStream())
{
int msgLength = BitConverter.ToInt32(gzBuffer, 0);
ms.Write(gzBuffer, 4, gzBuffer.Length - 4);
byte[] buffer = new byte[msgLength];
ms.Position = 0;
using (System.IO.Compression.GZipStream zip = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress))
{
zip.Read(buffer, 0, buffer.Length);
}
return System.Text.Encoding.Unicode.GetString(buffer, 0, buffer.Length);
}
}
冉冉说
一只名叫tom的猫
随时随地看视频慕课网APP
相关分类