来自JQuery Ajax的C#GZipStream

来自JQuery Ajax的C#GZipStream,c#,gzipstream,C#,Gzipstream,我有一个关于GZip的问题要问你 我在.Net中创建了一些动态表单。现在我想将表单数据(html+java脚本)压缩并保存在数据库中。因此,当用户请求表单(jqueryajax)时,我可以提供gzip版本。我尝试了GZipStream,但没有成功 有什么想法吗 System.Text.UTF8Encoding encoding=新的System.Text.UTF8Encoding() 谢谢, Shiras请出示一些代码。你为什么不走运?你会犯什么错误?在哪里?如果没有其他信息,就无法帮助您…请查

我有一个关于GZip的问题要问你

我在.Net中创建了一些动态表单。现在我想将表单数据(html+java脚本)压缩并保存在数据库中。因此,当用户请求表单(jqueryajax)时,我可以提供gzip版本。我尝试了GZipStream,但没有成功

有什么想法吗

System.Text.UTF8Encoding encoding=新的System.Text.UTF8Encoding()

谢谢,
Shiras

请出示一些代码。你为什么不走运?你会犯什么错误?在哪里?如果没有其他信息,就无法帮助您…请查看更新的评论。我们仍然不知道您如何调用该方法以及到底出了什么问题(sb是否为空?您希望客户端如何处理数据?)。你不能只是发布一些代码然后说“我没有运气”,上面的代码是用一个方法包装的。这是静态方法。这个方法是从jQueryAjax调用的。数据类型是JSON。sB.ToString()不是空的。它具有加密值。我所期望的是代替服务器执行GZIP。我将执行GZIP,然后发送到客户机(具有JQUERY AJAX调用的HTML页面),然后在浏览器接收到消息时,我希望浏览器会自动解码。现在,当数据到达客户机(引发AJAX调用的HTML页面)时,它不会自动解码,而是显示加密的数据。那么你认为叫喊会有帮助吗?由于涉及到多个组件(html、javascript、c#代码、数据库等),因此仅发布调用链的一部分(实际上按照预期工作…)将无法帮助我们解决您的问题。如果您将gziped数据发送到客户端,您也需要在那里对其进行解码。这不是神奇地为你做的。
    byte[] byteArray = new byte[value.Length];
    byteArray = encoding.GetBytes(value);

    //Prepare for compress
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    System.IO.Compression.GZipStream sw = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Compress, true);

    //Compress
    sw.Write(byteArray, 0, byteArray.Length);
    //Close, DO NOT FLUSH cause bytes will go missing...
    sw.Close();

    System.Text.StringBuilder sB = new System.Text.StringBuilder();
    byte[] finalData = ms.ToArray();
    ms.Close();
    sw.Dispose();
    ms.Dispose();
    sB.Append(encoding.GetString(finalData));

    //Response.ClearContent();
    //Response.OutputStream.Write(ms.ToArray(), 0, ms.ToArray().Length);

    return sB.ToString();