我有一个托管在 Microsoft Azure 上的 MVC 5 应用程序 (C#)。该应用程序从服务器返回一些相当大的 JSON 文档到客户端。有谁知道如何打开 HTTP 压缩,以便将这些文档压缩到客户端?我在 Google 上搜索过此内容,但找不到任何 3-4 年前的内容。
我认为另一种方法是使用压缩实用程序仅压缩 JSON 文档。我尝试过 LZ-String 但似乎无法使用 C# 版本在服务器上压缩文档并使用 JavaScript 版本在客户端上解压缩,并识别生成的 JSON 文档。
最佳答案
要启用 MVC Controller 操作的 JsonResult
压缩,您需要从 web.config
文件启用动态压缩:
<system.webServer>
<urlCompression doDynamicCompression="true" />
<httpCompression>
<dynamicTypes>
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
</dynamicTypes>
<staticTypes>
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
</staticTypes>
</httpCompression>
</system.webServer>
具有上述配置的工作示例已发布在 Azure 网站的免费层上,并且可以使用简单的 HTTP GET 请求进行测试:
GET https://double.azurewebsites.net/Home/SomeJson HTTP/1.1
User-Agent: Fiddler
Accept-Encoding: gzip, compress
Host: double.azurewebsites.net
请注意,Accept-Encoding
header 绝对必须触发服务器端压缩。另请注意 mime 类型 application/json; charset=utf-8
这是 ASP.NET MVC5 JsonResult 提供的 mime 类型。
关于asp.net-mvc - 如何启用 HTTP 压缩来压缩 JSON 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25684575/