【问题标题】:Data compression between iOS and .NET WebAPIiOS 和 .NET WebAPI 之间的数据压缩
【发布时间】:2015-03-04 05:54:11
【问题描述】:

会有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 应用程序接收数据时将遵循相同的逆过程。

除了我们计划的上述方法之外,还有其他最佳方法吗?任何技术建议、相关链接或一些示例代码 sn-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

【问题讨论】:

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


    【解决方案1】:

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

    是的,有两种可能。

    1. 通过启用动态压缩让 IIS 自行处理。
    2. 编写自己的代码来压缩响应

    请按照this线程的回答来选择这两个选项。

    我尝试了第二种方法(使用参考线程答案中给出的代码),它对我非常有效。

    在从 iOS App 接收数据时会遵循同样的逆过程。

    是的,我们可以解压缩 gZipped 数据。 [这篇博文] (http://blog.kaliatech.com/2013/02/posting-compressed-json-content-to-asp-net-web-api-controller/) 有相同的代码。 我还没有尝试过这个,但它似乎很好,应该可以工作。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    相关资源
    最近更新 更多