iOS和.NET WebAPI之间的数据压缩

时间:2015-03-04 05:54:12

标签: c# ios .net json asp.net-mvc

会有iOS App.NET WebApi需要同步大数据或记录。

我们需要在iOS和.NET WebApi上进行内存压缩,这将compressdecompress数据,然后进一步处理。

在iOS App方面,我们计划使用以下内容在内存GZip压缩中使用 -

http://www.clintharris.net/2009/how-to-gzip-data-in-memory-using-objective-c/

http://www.deusty.com/2007/07/gzip-compressiondecompression.html

在.Net WebApi方面,我们计划使用GZip压缩来开发 - https://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream%28v=vs.110%29.aspx

现在我的问题是 -

是否可以使用.Net中的GZipStream类来压缩JSON字符串?在.Net中,数据将从数据库中提取到模型中,然后模型将转换为JSON字符串,然后在发送到设备之前需要压缩该字符串,并且在从iOS App接收数据时将遵循相同的逆过程。 / p>

还有其他最佳方法,而我们计划的上述方法是什么?任何技术建议,相关链接或一些示例代码段都会非常有用。

解决方案: 感谢@puneet领导这篇文章以获得适当的解决方案。

由于我的服务器应用程序是Asp.Net WebAPI,并且没有任何文件(html,css,js等)从服务器传输到任何传统网站的浏览器。 http://forums.asp.net/t/1771770.aspx

因此,自动IIS压缩在我的情况下不起作用,可以按照此处给出的步骤启用 - http://www.codeproject.com/Articles/186233/Utilize-gzip-compression-in-IIS

在我的情况下,需要处理GZip请求和响应,为此目的,需要单独的处理程序,在这种情况下,我遵循以下SO帖子 -

压缩:Compress HTTP GET Response

对于减压:How do enable a .Net web-API to accept g-ziped posts

另一个值得提及的链接 - http://benfoster.io/blog/aspnet-web-api-compression

1 个答案:

答案 0 :(得分:3)

是否可以使用.Net中的GZipStream类来压缩JSON字符串?在.Net中,数据将从数据库中提取到模型中,然后模型将转换为JSON字符串,然后在发送到设备之前需要压缩该字符串

是的,有两种可能。

  1. 让IIS通过启用动态压缩来处理它。
  2. 编写自己的代码以压缩响应
  3. 对于这两个选项,请按照this主题的答案。

    我尝试了第二种方式(使用参考线程回答中给出的代码),它对我很有用。

    从iOS应用程序接收数据时将遵循相同的反向过程。

    是的,我们可以解压缩gzip数据。 [此博客文章](http://blog.kaliatech.com/2013/02/posting-compressed-json-content-to-asp-net-web-api-controller/)具有相同的代码。 我没试过这个,但看起来很好,应该有用。