我有一个项目,我在.cs文件中使用gzip来压缩数据并在html页面中获取它。 这是我的gzip代码。
public byte[] CustomerList()
{
SqlDataAdapter da = new SqlDataAdapter("select CustomerID from CustomerMaster", con);
DataSet ds = new DataSet();
da.Fill(ds);
return CompressData(ds);
}
public byte[] CompressData(DataSet ds)
{
using (MemoryStream memory = new MemoryStream())
{
using (GZipStream gzip = new GZipStream(memory, CompressionMode.Compress))
{
var formatter = new BinaryFormatter();
formatter.Serialize(gzip, ds);
gzip.Close();
}
return memory.ToArray();
}
}
我使用ajax函数成功从html页面接收了数据。这是我的代码
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$.ajax({
type: "POST",
url: "Service1.svc/CustomerList",
contentType: "application/json; charset=utf-8",
dataType: "json",
processdata: true,
success: function (data) {
alert(data.CustomerListResult);
},
error: function () {
alert("Error");
}
});
});
</script>
我收到了字节格式的数据。现在我想解密字节数据以获取原始数据。在这里,我卡住了。请帮我解释如何解密字节以获取原始数据。
答案 0 :(得分:0)
最佳解决方案是不压缩数据,而是在Web服务器上启用压缩。如果你必须预先压缩数据,那么你需要在另一端解压缩它(这不是世界上最快的东西)。我不知道C#,但看起来你正在使用标准的gzip;因此,您必须编写自己的gzip库或找到之前已经创建过的库。一个快速的谷歌发现this:它是针对node.js的,但你可以移植它以便在浏览器中使用。
tl; dr 让您的网络服务器压缩数据,而不是自己动手。