0

我有一个项目,我在 .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>

我收到了字节格式的数据。现在我想解密字节数据以获得原始数据。我在这里卡住了。请帮助我如何解密字节以获取原始数据。

4

1 回答 1

0

最好的解决方案是不压缩数据,而是在 Web 服务器上启用压缩。如果您必须预压缩数据,那么您需要在另一端对其进行解压缩(这不会是世界上最快的事情)。我不知道 C#,但看起来你使用的是标准 gzip;所以你必须要么编写自己的 gzip 库,要么找到一个以前已经制作过的库。一个快速的谷歌发现了这个:它适用于 node.js,但你可以将它移植到浏览器中使用。

tl;dr让您的网络服务器压缩数据,而不是自己做。

于 2013-01-25T09:42:23.083 回答