将存在一个iOS App
和.NET WebApi
,它们需要同步大数据或记录。
我们需要在iOS和.NET WebApi上都具有“内存压缩”功能,它将数据compress
和decompress
进行进一步处理。
在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接收数据时将遵循相同的逆过程。
除了上述计划之外,还有其他最佳方法吗?任何技术建议,相关链接或一些示例代码片段都将非常有帮助。
解决方案:
感谢@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
最佳答案
是否可以在.Net中使用GZipStream类压缩JSON字符串?在.Net中,数据将从数据库中提取到模型中,然后将模型转换为JSON字符串,然后在发送到设备之前需要压缩该字符串
是的,有两种可能。
对于这两个选项,请遵循this线程的答案。
我尝试了第二种方法(使用引用的线程答案中给出的代码),它对我很好。
从iOS应用接收数据时,将遵循相同的逆过程。
是的,我们可以解压缩gZipped数据。
[此博客文章](http://blog.kaliatech.com/2013/02/posting-compressed-json-content-to-asp-net-web-api-controller/)具有相同的代码。
我还没有尝试过,但是看起来不错,应该可以。
关于c# - iOS和.NET WebAPI之间的数据压缩,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28847518/